Java EE

阿里大佬推荐初学者练习的 Java 开源项目

☆樱花仙子☆ 提交于 2020-12-04 13:43:42
对于JAVA的新手来说,需要结合着相关书籍的学习和开源项目一起,才能达到比较好的效果。 在此推荐一些轻量级适合入门的JAVA开源项目, 希望对题主的学习有所帮助。 项目名称:springboot-learning-example项目简介:spring boot 实践学习案例,是 spring boot 初学者及核心技术巩固的最佳实践。 项目地址: springboot-learning-example. 项目名称:DockerFly 项目简介:Dockerfly是基于 Docker1.12+ (Docker API 1.24+) 开发出Docker 管理工具,提供里最基本的基于 Docker 的管理功能,目的是能够方便广大Docker初学者以及 Docker 管理员能够快速的进行Docker 容器的管理和维护。 项目地址:helyho/DockerFly 项目名称: jFinal-Paladin 项目简介:以jfinal为底层的java后台基础框架,结合了beetl、druid、shiro、ehcache; 初始目的是为了学习jfinal,最终目的形成一个工作中比较通用的基础后台框架; 希望给初学者提供些参考。 项目地址: jFinal-Paladin. 项目名称:spring-authority 项目简介:是由 spring+springmvc+hibernate+spring

移动互联网时代Java依旧火热,这几本神仙文档助你占一席之地

非 Y 不嫁゛ 提交于 2020-12-04 11:28:18
Java是一门伟大的程序设计语言,同时,它还是基于Java语言从嵌入式开发到企业级开发的平台。在风起云涌的计算机技术发展历程中,Java 的身影随处可见,而且生命力极其强大。1995 年,Java Applet使得Web网页可以表现精彩和互动的多媒体内容,促进了Web的蓬勃发展。之后随着Web的发展,应用Web成为大型应用开发的主流方式,Java凭借其“一次编译,到处运行”的特性很好地支持了互联网应用所要求的跨平台能力,成为服务器端开发的主流语言。Java EE至今依然是最重要的企业开发服务器端平台。2004年再次产生了对Web客户端体验的强烈需求,促使富因特网应用技术广泛流行,从Java Web Start到现在的JavaFX,都是重要的富因特网应用技术。 现在我们进入了移动互联网时代,而Java依然是当之无愧的主角。作为开发者,想要在互联网时代其中有一席之地,一定需要多学习新的知识。 Java并发编程实战 本书深入浅出地介绍了Java 线程和并发,是一本完美的Java并发参考手册。书中从并发性和线程安全性的基本概念出发,介绍了如何使用类库提供的基本并发构建块,用于避免并发危险、构造线程安全的类及验证线程安全的规则,如何将小的线程安全类组合成更大的线程安全类,如何利用线程来提高并发应用程序的吞吐量,如何识别可并行执行的任务,如何提高单线程子系统的响应性

Spring data jpa 的使用与详解:复杂动态查询及分页,排序

不打扰是莪最后的温柔 提交于 2020-12-04 06:15:49
一、 使用Specification实现复杂查询 (1) 什么是Specification Specification是springDateJpa中的一个接口,他是用于当jpa的一些基本CRUD操作的扩展,可以把他理解成一个spring jpa的复杂查询接口。其次我们需要了解Criteria 查询,这是是一种类型安全和更面向对象的查询。而Spring Data JPA支持JPA2.0的Criteria查询,相应的接口是JpaSpecificationExecutor。 而JpaSpecificationExecutor这个接口基本是围绕着Specification接口来定义的,Specification接口中只定义了如下一个方法: Predicate toPredicate ( Root < T > root , CriteriaQuery < ? > query , CriteriaBuilder cb ) ; Criteria查询基本概念: Criteria 查询是以元模型的概念为基础的,元模型是为具体持久化单元的受管实体定义的,这些实体可以是实体类,嵌入类或者映射的父类。 CriteriaQuery接口: 代表一个specific的顶层查询对象,它包含着查询的各个部分,比如:select 、from、where、group by、order by等注意

【10分钟学Spring】:@Profile、@Conditional实现条件化装配

∥☆過路亽.° 提交于 2020-12-04 02:22:04
根据不同的环境来装配不同的bean 企业级开发中,我们一般有多种环境,比如开发环境、测试环境、UAT环境和生产环境。而系统中有些配置是和环境强相关的,比如数据库相关的配置,与其他外部系统的集成等。 如何才能实现一个部署包适用于多种环境呢? Spring给我们提供了一种解决方案,这便是条件化装配bean的机制。最重要的是这种机制是在运行时决定该注入适用于哪个环境的bean对象,不需要重新编译构建。 下面使用Spring的profile机制实现dataSource对象的条件化装配。 1、给出开发环境、测试环境、生产环境dataSource的不同实现类 说明:此处只为演示条件化装配bean,不做真实数据源对象模拟。 public interface DataSource { void show(); } public class DevDataSource implements DataSource{ public DevDataSource(){ show(); } public void show() { System.out.println("开发环境数据源对象"); } } public class TestDataSource implements DataSource{ public TestDataSource() { show(); } public void show(

关于thymeleaf+layout布局的使用方式,spring boot 访问页面(静态页面及jsp页面)

丶灬走出姿态 提交于 2020-12-04 01:47:47
首先建立相同部分的html,这里我命名为layout.html,放在了`templates/layout'文件夹下,这个路径以后是会用到的,以下是我的layout的代码,比较粗糙. 但是应该会更好的帮助理解. 要提到几个重要的部分 <!DOCTYPE html> <html xmlns:th="http://www.thymeleaf.org" xmlns:layout ="http://www.ultraq.net.nz/web/thymeleaf/layout"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <style> * {font-family: Microsoft YaHei, Tahoma, Helvetica, Arial, sans- serif;} .header {background - color: #f5f5f5;padding: 20px;} .header a {padding: 0 20px;} .container {padding: 20px;margin:20px auto;}

JPA 开发中遇到的错误

 ̄綄美尐妖づ 提交于 2020-12-04 00:43:34
JPA 开发中遇到的错误 (2011-07-13 16:56:12) 转载 ▼ 标签: 杂谈 分类: Java/J2EE 常见异常 1、异常信息:org.hibernate.hql.ast.QuerySyntaxException: person is not mapped 异常环境:查询 异常原因:查询语句中Person类没有大写 2、java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to java.lang.String 异常环境:查询、遍历显示 异常原因:转型出错 3、javax.persistence.NonUniqueResultException: result returns more than one elements 异常环境:查询、getSingleResult 异常原因:getSingleResult只能获取一条数据,而查询语句返回的是多条数据 4、 org.hibernate.PropertyValueException: not-null property references a null or transient value: com.sunyard.entities.Person.name 异常环境:数据插入 异常原因:JPA的Entity中一个属性定义为nullable

整天都在讨论使用SpringBoot,可你居然连缓存都不清楚

荒凉一梦 提交于 2020-12-03 14:34:56
缓存技术是一个让所有开发人员又爱又恨的技术,我们爱缓存是因为缓存能给我们带来数量级的响应和流量,但是最迷人的反而最危险,如果缓存用不好也是灾难级别的,特别是一些涉及到公司主要现金流的业务,如果因为我们使用缓存不当,而带给公司一定的损失,不亚于删库跑路的那个大兄弟,那今天我们就来看一下springboot的缓存都有那些东西,学习嘛,一点点的来,慢慢积累自己的经验,才能厚积薄发 文章首发公众号:Java架构师联盟,每日更新技术好文 一、JSR107缓存规范 为了缓存开发规范的统一,以及提升系统的扩展性,J2EE发布了JSR107缓存规范。 主要是Java Caching定义了5个接口,分别是 CachingProvider、CacheManager、Cache、Entry、Expiry。 下面我们分开详细的展开看一下 CachingProvider: 可以创建、配置、获取、管理和控制多个CacheManager,一个Application在运行期间可以访问多个CachingProvider。 CacheManager: 可以创建、配置、获取、管理和控制多个唯一命名的Cache,这些Cache存在于CacheManager的上下文中。一个CacheManager仅被一个CachingProvider所拥有。 Cache: 是一个类似于Map的数据结构并临时存储以Key为索引的值

tomcat在eclipse里部署

做~自己de王妃 提交于 2020-12-03 01:58:19
            先下载安装包,解压缩,运行安装文件(端口:8080,下一步 指定jdk安装路径,记住tomcat的安装位置) 安装程序的位置 和 安装后的位置不一样 在eclipse里面添加tamcat 1:点击window找到show view(找到servlces) 2.在services里面添加一个新的服务(create a new service) 3:选择tomcat8.0指定tomcat安装路径 在eclipse里面启动web项目 1:创建一个动态的web项目(需要点击下一步,创建web.xml文件) 2;在webcontent文件下创建.html文件 3:把项目添加到tomcat容器里面 在浏览器里面访问web项目(html文件) local host(或主机ip地址:可通过ipconfig查询):端口号 如果端口号重复可以双击service,改变端口号       在xml文件中配置servlet <servlet> <servlet-name>填写你想给servlet设置的名字(英文)</servlet-name> <servlet-class>填写正确的servlet类全路径</servlet-class> </servlet> <servlet-mapping> <servlet-name>填写与上面名称相同的名字(英文)</servlet-name>

Tomcat部署Eclipse项目实战

淺唱寂寞╮ 提交于 2020-12-03 01:24:36
1)Eclipse项目选择以Eclipse方式导入Idea; 根据报错引入JavaEE6; jdk还是用1.8; 配置好数据库密码。 2)既然为web项目,必须有web项目的设置 3)必须设置好,不然没办法在Tomcat中打包。 exploded发现没有部署为war到Tomcat 4)设置好Tomcat的配置, 尤其是jre选择1.8,而不是别的1.8.xxx,否则启动报32位的错误。 5)选择部署的jar,同时虚拟路径不要选择东西 来源: oschina 链接: https://my.oschina.net/u/4290180/blog/4770242

解决静态方法调用注入的service

让人想犯罪 __ 提交于 2020-12-02 10:08:40
1 在使用jpa的复杂查询时,声明了specification时声明为静态方法,导致注入的service无法使用,故想到俩种方式,一种手动注入,一种注解注入,此文使用的时注解注入; 解决静态方法调用注入的service 1 // 先说一下解决方法 2 @Autowired 3 private AService aService; 4 5 // 声明静态变量,为了之后调用service 6 public static ClassA classA; 7 8 // 关键:通过注解实现注入 9 @PostConstruct 10 public void init() { 11 classA = this ; 12 veesimpl.aService = aService;9 } 13 14 // 使用 15 veesimpl.aService.方法; java开发之@PostConstruct执行顺序 1 构造函数==》postConstruct==>init==destory==>predestory== 卸载servlet;; 2 3 从Java EE5规范开始,Servlet增加了两个影响Servlet生命周期的注解(Annotation):@PostConstruct和@PreConstruct。这两个注解被用来修饰一个非静态的void()方法.而且这个方法不能有抛出异常声明。 4