目录
十五.Spring Boot使用Druid和监控配置 数据源
二十一.Spring Boot 拦截器HandlerInterceptor
二十二.Spring Boot启动加载数据CommandLineRunner(服务加载时就调用)
二十四.Spring Boot使用自定义的properties
二十七.SpringBoot启动时的Banner设置 (例如springboot图标)
三十.Boot导入XML配置 (例:application-bean.xml)
三十一.使用@SpringBootApplication注解
三十六.Spring Boot集成EHCache实现缓存机制
三十七.Spring Boot分布式Session状态保存Redis
三十九.springboot + devtools(热部署)
四十.Spring Boot 使用Java代码创建Bean并注册到Spring中
四十二.Spring Boot动态数据源(多数据源自动切换)
四十四.Spring Boot MyBatis连接Mysql数据库
四十五.Spring Boot中使用AOP统一处理Web请求日志
四十七.spring boot单元测试restfull API
五十一.spring boot日志升级篇—log4j多环境不同日志级别的控制
五十四.spring boot中使用@Async实现异步调用
一.创建基础springboot项目
1.1引入父工程
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.3.3.RELEASE</version>
</parent>
1.2创建为web项目
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
1.3springboot入口
(1)SpringBootApplication:引入相应的配置
(2)RestController :返回json字符串,可用reful风格接口
/**
* Date: 2018/7/28
* Author: LLLiGJ
* Desc: 启动类
*/
@RestController
@SpringBootApplication
public class MainClass {
@RequestMapping("/")
public String hello(){
return "hello";
}
public static void main(String[] args) {
SpringApplication.run(MainClass.class, args);
}
}
二.返回Json字符串
2.1 返回Json字符串
/**
* Date: 2018/7/28
* Author: LLLiGJ
* Desc: 返回JSON数据
*/
@RestController
@RequestMapping("/Demo001")
public class Demo001Controller {
@RequestMapping("/getDemo001")
public Demo001 getDemo001(){
Demo001 demo001 = new Demo001();
demo001.setId(1L);
demo001.setName("LGJ");
return demo001 ;
}
}
2.2启动类
/**
* Date: 2018/7/28
* Author: LLLiGJ
* Desc: 启动类
*/
@RestController
@SpringBootApplication
public class App {
public static void main(String[] args) {
SpringApplication.run(App.class, args);
}
}
三.SpringBoot热部署
3.1加入springload
(1)如果只是使用mvn spring-boot:run启动,只需加入以下
<dependency>
<groupId>org.springframework</groupId>
<artifactId>springloaded</artifactId>
<version>1.2.4.RELEASE</version>
</dependency>
(2)如果使用run as java application启动 : 打开 Preferences > Compiler , 勾选 Build project automatically
3.2方式二:依赖 spring-boot-devtools 热部署模块
<!-- 热部署模块 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional> <!-- 这个需要为 true 热部署才有效 -->
</dependency>
四.使用别的Json框架
4.1使用fastJson
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.15</version>
</dependency>
4.2 配置fastjson ,两种配置方式
(1)启动类继承extends WebMvcConfigurerAdapter
(2)在App.java启动类中,注入Bean : HttpMessageConverters
/**
* Date: 2018/7/28
* Author: LLLiGJ
* Desc: 启动类
*/
@RestController
@SpringBootApplication
public class App {
public static void main(String[] args) {
SpringApplication.run(App.class, args);
}
@Bean
public HttpMessageConverters fastJsonHttpMessageConverters() {
FastJsonHttpMessageConverter fastConverter = new FastJsonHttpMessageConverter();
FastJsonConfig fastJsonConfig = new FastJsonConfig();
fastJsonConfig.setSerializerFeatures(SerializerFeature.PrettyFormat);
fastConverter.setFastJsonConfig(fastJsonConfig);
HttpMessageConverter<?> converter = fastConverter;
return new HttpMessageConverters(converter);
}
}
4.3测试
**
* Date: 2018/7/28
* Author: LLLiGJ
* Desc: 返回Json内容
*/
public class Demo001 {
private long id;//主键.
@JSONField(serialize = false)
private String name;//测试名称.
}
五.全局异常捕捉
5.1 在class注解上@ControllerAdvice, 在方法上注解上@ExceptionHandler(value = Exception.class)
/**
* Date: 2018/7/29
* Author: LLLiGJ
* Desc: 全局异常捕捉
*/
@ControllerAdvice
public class GlobalDefaultExceptionHandler {
@ExceptionHandler(value = Exception.class)
public void defaultErrorHandler(HttpServletRequest req, Exception e){
e.printStackTrace();
System.out.println("GlobalDefaultExceptionHandler.defaultErrorHandler()");
}
}
六.连接数据库
6.1 引入mysql
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
6.2 配置文件 resource/ application.properties
spring.datasource.url = jdbc:mysql://localhost:3306/test
spring.datasource.username = root
spring.datasource.password = root
spring.datasource.driverClassName = com.mysql.jdbc.Driver
spring.datasource.max-active=20
spring.datasource.max-idle=8
spring.datasource.min-idle=8
spring.datasource.initial-size=10
七.JPA-Hibernate 使用
7.1引入依赖
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
7.2配置 resource/application.properties
########################################################
###datasource
########################################################
spring.datasource.url = jdbc:mysql://localhost:3306/test
spring.datasource.username = root
spring.datasource.password = root
spring.datasource.driverClassName = com.mysql.jdbc.Driver
spring.datasource.max-active=20
spring.datasource.max-idle=8
spring.datasource.min-idle=8
spring.datasource.initial-size=10
########################################################
### Java Persistence Api
########################################################
spring.jpa.database = mysql
spring.jpa.show-sql = true
spring.jpa.hibernate.ddl-auto = update
spring.jpa.hibernate.naming-strategy = org.hibernate.cfg.ImprovedNamingStrategy
spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.MySQL5Dialect
7.3使用
@Entity
public class Demo001 {
@Id
@GeneratedValue
private long id;//主键.
@JSONField(serialize = false)
private String name;//测试名称.
}
八.使用JPA保存数据
8.1 http://412887952-qq-com.iteye.com/blog/2291551
九.使用jdbcTemplete
9.1http://412887952-qq-com.iteye.com/blog/2291574
9.2 dao 使用
/**
* 通过id获取demo对象.
* @param id
* @return
*/
public Demo getById(long id){
String sql = "select *from Demo where id=?";
RowMapper<Demo> rowMapper = new BeanPropertyRowMapper<Demo>(Demo.class);
return jdbcTemplate.queryForObject(sql, rowMapper,id);
}
十.springboot修改端口号
10.1 http://412887952-qq-com.iteye.com/blog/2291576
10.2配置
server.port=9090
十一.配置context path
11.1 http://412887952-qq-com.iteye.com/blog/2291578
11.2 Spring boot默认是/ ,这样直接通过http://ip:port/就可以访问到index页面,如果要修改为http://ip:port/path/ 访问的话,那么需要在Application.properties文件中加入server.context-path = /你的path,比如:spring-boot,那么访问地址就是http://ip:port/spring-boot 路径。
11.3 配置application.properties
server.context-path=/spring-boot
十二.改变JDK编译版本
12.1 Spring Boot在编译的时候,是有默认JDK版本的,如果我们期望使用我们要的JDK版本的话
12.2 配置maven
<plugin>
<artifactId>mave