springboot笔记
1.每个springboot项目都会有一个名为*Application的入口类,入口类中有一个main方法,这个方法是一个标准的java应用的入口方法。在main方法中使用SpringApplication.run(*Application.class,args)来启动springboot项目
2.@SpringBootApplication是Spring Boot的核心注解,启动项目时,Spring Boot会自动扫描@SpringBootApplication所在类的同级包及下级包中的Bean
3.在SpringBootApplication启动类中,可以关闭特定的自动配置:
@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class})
4.@PropertySource注解不支持加载.yml文件
在spring中可以使用@PropertySource("classpath:property文件地址")注解指明配置文件,然后使用@Value注解注入值
而在SpringBoot中可以直接使用@Value注解注入,
1.当使用@Value注解的时候,不能new对象,而要使用依赖注入。这样才能获取到值。
2.使用@Value注解时不能注解在静态(static)变量或final变量上
直接使用@Value注解加载不了配置文件时:https://blog.csdn.net/qq_42274641/article/details/83107807
SpringBoot还提供了基于类型安全的配置方式,通过@ConfigurationProperties将properties属性和一个Bean及其属性关联起来,如:
/** *配置文件 application.properties * author.name=zhanghl * author.age=27 **/ @Component @ConfigurationProperties(prefix = "author")
// @ConfigurationProperties(prefix = "author",locations = {"classpath:config/author.properties"}) 可以使用locations来指定配置文件的路径,application.properties 是默认的配置文件,所以不需要使用locations
@Data
public class Author {
private String name;
private Long age;
}
5.可以使用@ImportResource({"classpath:xxx.xml","classpath:aaa.xml"})来加载xml配置
6.加载yml格式的配置文件:https://blog.csdn.net/u010922732/article/details/91048606
public class PropertiesUtil { public static String active; static { try { ClassPathResource resource = new ClassPathResource("application.yml"); // 直接读取properties文件 // Properties properties = PropertiesLoaderUtils.loadProperties(resource); YamlPropertiesFactoryBean yaml = new YamlPropertiesFactoryBean(); yaml.setResources(resource); Properties properties = yaml.getObject(); active = properties.getProperty("spring.profiles.active", "prod"); }catch (Exception e) { e.printStackTrace(); } } }