在spring boot出现以前,使用spring框架的程序员是这样配置web应用环境的,需要大量的xml配置。
随着web项目集成软件的不断增多,xml配置也不断的增多,xml配置文件也在不断地增多,项目的依赖管理也越发的复杂。spring框架也因此饱受争议,配置文件难以理解且容易出错。
xml配置文件不但复杂,而且绝大部分属于模板配置,也就是说有80%以上的配置是不断重复的。在这个web项目里面这样配置,挪到另一个项目里面这部分配置仍然相同。
Spring Boot的配置方式,就像是插头插座,就是这个标准。你第三方开源类库想接入进来,你就按照这个标准做一个starter的适配。spring MVC方式就像是手动接电线,很灵活,但是不同的人接出来的效果千差万别,而且很容易出错。Spring boot虽然灵活性不如Spring MVC的方式,并且你也不太清楚插座里面的线路是什么样,但就是方便易用。话说回来,当你习惯使用插头插座,你还期望自己是个电工不成?
这里有一个很重要的概念: 约定大于配置。你遵守一些规定,会让你的开发变得更加容易。
# spring Initializr 方法 ? 1 选择spring Initializr创建项目 ? http://start.aliyun.com ? 2 填写项目名称 3 选择springboot的版本,如果没有想要的版本,先随便选一个,然后去pom文件中修改 ? 4 勾选需要的模块,比如web sql等 ? 5 项目会自动生成启动类 ? 6 编写controller 启动项目测试
也可以用maven的方式,没有这个简单和方便
在实际开发中,pom配置文件不需要你去关心,练习中可以直接复制配置文件。
在我们搭的这套环境中有:代码生成器,和接口文档生成的插件。要求自己能配置起来。
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>
Welcome to JetBrains License Server!:) +uuid
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。个人认为就是一种模块之间的依赖传递。
使用的是mybatis代码生成器
<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>
generatorConfig.xml
# 1 数据库驱动包位置 # 2 数据库链接URL、用户名、密码 # 3 实体类生成位置 # 4 mapper和xml位置 # 5 指定用哪个表来生成
@RestController = @ResponseBody + @Controller
@RequestBody 前端给你传的数据是json格式的(参数封装到请求体 post),可以直接封装到java对象中
如果给你的参数是地址栏拼接的,就不用RequestBody
404 找不到路径
403 禁止访问
405 请求方式不匹配
logback-spring.xml
需要注意以后要修改包名,其他的不用动
怎么打印日志
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
引入插件
<plugin> ? ? <groupId>com.github.shalousun</groupId> ? ? <artifactId>smart-doc-maven-plugin</artifactId> ? ? <version>1.1.7</version> ? ? <configuration> ? ? ? ? <!--指定生成文档的使用的配置文件,配置文件放在自己的项目中--> ? ? ? ? <configFile>./src/main/resources/smart-doc.json</configFile> ? ? ? ? <!--指定项目名称--> ? ? ? ? <projectName>sboot</projectName> ? ? ? ? <!--smart-doc实现自动分析依赖树加载第三方依赖的源码,如果一些框架依赖库加载不到导致报错,这时请使用excludes排除掉--> ? ? ? ? <excludes> ? ? ? ? ? ? <!--格式为:groupId:artifactId;参考如下--> ? ? ? ? ? ? <exclude>com.alibaba:fastjson</exclude> ? ? ? ? </excludes> ? ? ? ? <!--自1.0.8版本开始,插件提供includes支持--> ? ? ? ? <!--smart-doc能自动分析依赖树加载所有依赖源码,原则上会影响文档构建效率,因此你可以使用includes来让插件加载你配置的组件--> ? ? ? ? <includes> ? ? ? ? ? ? <!--格式为:groupId:artifactId;参考如下--> ? ? ? ? ? ? <include>com.alibaba:fastjson</include> ? ? ? ? </includes> ? ? </configuration> </plugin>
指定配置文件
记得要将实体类和controller的注解都补充完整
生成指定格式文件
修改启动类名称
点击package
将zip包放到服务器上,并且解压
修改shell脚本
上传到linux,并且修改执行权限 chmod 777 run.sh
启动脚本 ./run start