注解配置笔记
参考文档 : Spring Boot First Application
@Configuration : spring-boot启动类的注解,通常是放在main函数的类上面
@Configuration
@EnableAutoConfiguration
@ComponentScan
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
@ComponentScan : 配置需要spring管理的Bean位置
@EnableAutoConfiguration : 允许spring-boot自动配置,会根据classpath中有哪些类来自动配置,通常和@Configuration一起使用;整个项目只配置一次;也可以禁用一些自动配置,比如禁用数据库配置:
@Configuration
@EnableAutoConfiguration(exclude={DataSourceAutoConfiguration.class})
public class MyConfiguration {
}
@SpringBootApplication : 包含了以上3个注解,另一个写法
@Import : 项目中有很多配置,如果不想都放到一个类中,可以分成几个配置类,使用@Import在主配置类中导入
@SpringBootApplication(scanBasePackages = "com.spring.boot.controller")
@Import(value = {CacheConfigure.class})
public class ApplicationConfigure {
public static void main(String[] args) throws Exception {
// SpringApplication.run(Application.class, args);
SpringApplication application = new SpringApplication(ApplicationConfigure.class);
application.setBannerMode(Banner.Mode.CONSOLE);
application.run(args);
}
}
@Configuration
@ComponentScan(basePackages = "com.spring.boot.controller2")
public class CacheConfigure {
}
@ImportResource : 支持导入spring的xml配置文件
参考手册,Spring-boot Reference开发工具使用
开发工具的Maven配置
org.springframework.boot
spring-boot-devtools
true
实现的原理
spring-boot开发工具实现了两个ClassLoader,一个ClassLoader用来加载jar里面的class,启动后就不会再改变;另一个是用在加载项目中的Class,如果项目的类发生了变化,那么就会重启,重新加载。如果项目中的一些静态资源发生了变化,那么将不会重启,只用重新覆盖加载
开发工具的配置文件
通常是在ClassPath中的application.properties
配置静态资源的路径,修改后不会重启,只会重新覆盖加载
默认定义的位置有:
/META-INF/maven, /METAINF/resources ,/resources ,/static ,/public , /templates
排除位置,在application.properties中添加以下参数,排除掉static/, public/
spring.devtools.restart.exclude=static/,public/
不再classpath路径下的文件,当发生变化后需要重启或者重新加载
可以使用spring.devtools.restart.additional-paths
禁用重启
在application.properties中添加spring.devtools.restart.enabled=false
或者
public static void main(String[] args) {
System.setProperty("spring.devtools.restart.enabled", "false");
SpringApplication.run(MyApp.class, args);
}
使用触发文件
spring.devtools.restart.trigger-file 当文件发生改变后会重启,具体参考文档20.2.4 Using a trigger file
使用Maven插件运行$ mvn spring-boot:run