yangjinpingc 2018-05-20
Spring Boot简介
Spring Boot是基于Spring4的条件注册的一套快速开发整合包,用于快速、敏捷地开发新一代基于Spring框架的应用程序。
JPA和spring data jpa简介
JPA(Java Persistence API)是Sun官方提出的Java持久化规范。它为Java开发人员提供了一种对象/关联映射工具来管理Java应用中的关系数据。它的出现主要是为了简化现有的持久化开发工作和整合ORM技术。
Spring data jpa是在JPA规范下提供了Repository层的实现,但是使用哪一种ORM需要你来决定(默认用Hibernate实现)。
Thymeleaf是一款用于渲染XML/XHTML/HTML5内容的模板引擎。
整合过程介绍(开发工具:IntelliJ IDEA )
项目结构如下:
1、创建maven项目,pom.xml配置如下:
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.xieke.test</groupId> <artifactId>springboot-demo</artifactId> <version>1.0-SNAPSHOT</version> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.5.1.RELEASE</version> </parent> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.39</version> </dependency> <!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-thymeleaf --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> <version>1.4.0.RELEASE</version> </dependency> <!-- https://mvnrepository.com/artifact/org.springframework.data/spring-data-jpa --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> <version>1.5.1.RELEASE</version> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <!-- 实现热部署, mvn spring-boot:run 启动应用有效 --> <dependencies> <dependency> <groupId>org.springframework</groupId> <artifactId>springloaded</artifactId> <version>1.2.5.RELEASE</version> </dependency> </dependencies> </plugin> </plugins> </build> </project>
2、添加application.properties文件到 resources下,配置如下:
server.port=8080 server.tomcat.uri-encoding=utf-8 #MySQL spring.datasource.driver-class-name=com.mysql.jdbc.Driver #spring.datasource.driverClassName=com.mysql.jdbc.Driver spring.datasource.url=jdbc:mysql://localhost:3306/test?characterEncoding=utf8 spring.datasource.username=root spring.datasource.password=999999 #Spring Data JPA(Spring Boot 默认使用hibernate作为JPA的实现) spring.jpa.database=MYSQL spring.jpa.show-sql=true spring.jpa.hibernate.ddl-auto=update spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.MySQL5Dialect #视图层控制(view默认配置) spring.mvc.view.prefix=classpath:/templates/ spring.mvc.view.suffix=.html spring.mvc.static-path-pattern=/static/** # 是否启用thymeleaf模板解析 spring.thymeleaf.enabled=true # 是否开启模板缓存(建议:开发环境下设置为false,生产环境设置为true) spring.thymeleaf.cache=false
3、在resources下新建static/ scripts,templates/ user文件夹用来存放js,html文件
3.1 index.html
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"/> <script src="../../static/scripts/jquery.min.js"></script> <script src="../../static/scripts/test.js"></script> <title>Title</title> </head> <body> <h1>TEST PAGE</h1> </body> </html>
3.2 test.js
$(document).ready(function (){ alert("OK TEST"); });
4、java 主要配置文件如下:
4.1 JPA配置类JpaConfiguration.java
package com.xieke.test.configuration; import org.springframework.boot.autoconfigure.domain.EntityScan; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.core.Ordered; import org.springframework.core.annotation.Order; import org.springframework.dao.annotation.PersistenceExceptionTranslationPostProcessor; import org.springframework.data.jpa.repository.config.EnableJpaRepositories; import org.springframework.transaction.annotation.EnableTransactionManagement; @Order(Ordered.HIGHEST_PRECEDENCE) // 最高值优先,默认最低值优先 @Configuration @EnableTransactionManagement(proxyTargetClass = true) @EnableJpaRepositories(basePackages = "com.xieke.test.repository") @EntityScan(basePackages = "com.xieke.test.entity") public class JpaConfiguration { @Bean PersistenceExceptionTranslationPostProcessor persistenceExceptionTranslationPostProcessor(){ return new PersistenceExceptionTranslationPostProcessor(); } }
4.2 项目启动类Entry.java
package com.xieke.test.configuration; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.context.annotation.ComponentScan; /** * 项目启动入口,配置包根路径 */ @SpringBootApplication @ComponentScan(basePackages = "com.xieke.test") public class Entry { public static void main(String[] args) throws Exception { SpringApplication.run(Entry.class, args); } }
5、其他具体业务实现代码就不全部贴出来了,详细代码请参考码云。