文章目录
-
- boot的缺点
- 项目搭建
- 热部署
- 依赖管理
- 代码生成器
- 日志
- 日期转换
一、boot的缺点
1 spring 的缺点
在spring boot出现以前,使用spring框架的程序员是这样配置web应用环境的,需要大量的xml配置。下图展示了在xml配置的时代和SpringBoot的配置量的差别。
-
随着web项目集成软件的不断增多,xml配置也不断的增多,xml配置文件也在不断地增多,项目的依赖管理也越发的复杂。spring框架也因此饱受争议,配置文件难以理解且容易出错。
-
xml配置文件不但复杂,而且绝大部分属于模板配置,也就是说有80%以上的配置是不断重复的。在这个web项目里面这样配置,挪到另一个项目里面这部分配置仍然相同。
二、项目搭建
# spring Initializr 方法
1 选择spring Initializr创建项目 http://start.aliyun.com
2 填写项目名称
3 选择springboot的版本,如果没有想要的版本,先随便选一个,然后去pom文件中修改
4 勾选需要的模块,比如web sql等
5 项目会自动生成启动类
6 编写controller 启动项目测试
三、热部署
1 设置 file- setting - bulid - compiler,勾选build project automatically ,并且保存
2 ctrl+shift+atl + / , 选择registry , 勾选compiler.automake.allow.when.app.running
3 在依赖中添加spring-boot-devtools (dev开发环境的工具)
<!--devtools热部署-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
<scope>true</scope>
</dependency>
另一种开发中常用的热部署:JRebel Intellij热部署插件JRebel_jrebel idea版本-CSDN博客
四、依赖管理
1 spring-boot-starter-parent 依赖: 底层依赖spring-boot-dependenies, 有个properties标签,里面包含了其他依赖的版本。可以理解为就是一个版本的管理器
2 spring-boot-starter-web 的理解:在springboot项目中引入此启动器,底层的原理是:系统写好了一个spring-boot-starter-web项目,这个项目依赖于spring-boot-starter-json, tomcat,web,webmvc。个人认为就是一种模块之间的依赖传递。
五、代码生成器
<plugin>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-maven-plugin</artifactId>
<version>1.3.2</version>
<configuration>
<configurationFile>src/main/resources/generatorConfig.xml</configurationFile>
<verbose>true</verbose>
<overwrite>true</overwrite>
</configuration>
</plugin>
# 1 数据库驱动包位置
# 2 数据库链接URL、用户名、密码
# 3 实体类生成位置
# 4 mapper和xml位置
# 5 指定用哪个表来生成
@RestController = @ResponseBody + @Controller
@RequestBody 前端给你传的数据是json格式的,可以直接封装到java对象中
六、日志
Log log = LogFactory.getLog(类名.class);
log.info(日志内容)
七、日期转换
-
导入依赖
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.10.1</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>2.10.1</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
<version>2.10.1</version>
</dependency>
-
消息转换器
package com.xinzhi.config;
import org.springframework.core.convert.converter.Converter;
import org.springframework.stereotype.Component;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
@Component
public class DateConverter implements Converter<String, Date> {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
@Override
public Date convert(String source) {
try {
return sdf.parse(source);
} catch (ParseException e) {
e.printStackTrace();
}
return null;
}
}
-
配置文件中添加
spring.jackson.date-format =yyyy-MM-dd HH:mm:ss
spring.jackson.time-zone=GMT+8