1、基于java的容器配置优于基于XML的容器配置
类型安全并有高可重构性
2、mvnw和mvnw.cmd
Maven的压缩脚本,可以用这些脚本去创建项目而不需安装Maven
3、packing中选择Jar
选择JAR而不是WAR是cloud-minded choice。WAR文件完美适配部署到传统Java应用服务,但是他们只能适配部分云平台例如Cloud Foundry。JAR能在任何Java云平台上运行,因此除非你试图部署你的项目到传统应用服务,不然都用Jar。
4、使用包含starter在artifact ID的依赖
你的构造文件会明显更小并更容易管理,因为你不用再说明每个你可能需要的库。
你可以只写你所需的能力,而不是一系列的库名。比如你想要开发一个web应用,你可以直接添加这个web starter依赖而不是一系列独立的库依赖。
你可以从库版本的包袱中解脱,你只需要考虑springboot 的版本,而不用关心他们内部的依赖是否会有冲突。
5、SpringBootApplication包含3个注解
SpringBootConfiguration 定义这个类是一个配置类,尽管没有很多配置在这个类,你可以添加基于Java的Spring框架配置在这个类里。
EnableAutoConfiguration 允许SpringBoot自动配置,这个注解告诉SpringBoot去自动配置你需要的任何组件
ComponentScan 允许组件扫描,让你可以说明其他带有注解@Component,@Controller,@Service等等可以让Spring自动发现并注册到Spring容器中。
6、@Controller
本身不做什么事,最主要的目的是为了说明这个类是一个组件然后被扫描,Spring
的组件扫描会自动发现这个类并创建这个类的一个实例在Spring容器当中。
7、Spring Boot DevTools
一些功能
当代码修改的时候 应用自动重启
当页面资源(templates,Javascript,stylesheets等等)修改的时候浏览器自动刷新
自动取消templates的缓存
如果使用H2数据库的话自动构建在H2控制台。
Automatic application Restart
为什么你能够在修改代码和配置文件的一段时间后能看到改变被应用到页面上?
当启用devTools时,这个应用在Java虚拟机中被加载进2个独立的类加载器。一个类加载器加载你的Java代码,属性文件和其他在src/main/path中的文件。另外一个类加载器加载你的依赖库,一些你不经常修改的文件。
当你的改变被检测到的时候,只会重新加载包含你项目文件的代码的类加载器和重启Spring application context。
只重启一个类加载器也有一个缺点:当你修改你的依赖库的时候比如pom中的文件,你需要整个重启。