SpringBoot常用标签说明
一、@PropertySource
@PropertySource(value={String数组},encoding = “UTF-8”)
注意事项:
1、相当于Spring配置文件的引入标签<importresource=“classpath:kk.properties” />,将数据引入至主配置文件中,即虽然@PropertySource引入的配置文件物理上不属于主配置文件,但逻辑上是相当于写入了主配置文件中
故需要使用@configurationproperties(prefix="") 标签来读取想要读取的值
2、@PropertySource只能读取properties文件
二、@ImportResource(locations={})
导入其他Spring配置文件,不推荐使用, 用法与@PropertySource类似,但要标注在主配置类上
三、SpringBoot推荐的给容器添加组件的方法
组合使用@configuration 和Bean标签
@configuration声明此类是一个配置类
@Bean注解在配置类方法上,将此方法的返回值作为组件添加到配置文件中,同时默认id即该组件名就是@Bean注释的方法名
@org.springframework.context.ApplicationContext 来获取配置类生成的对象,具体原因不明
@Configuration
public class MyConfiguration {
@Bean
public Cat myCat(){
System.out.println("配置类运行了...............");
Cat cat = new Cat();
cat.setName("小白");
cat.setAge(100);
return cat;
}
}
四、@ConfigurationProperties
(prefix = “cat”)和@Validated标签以及判断如@notnul标签等不再赘述
@ConfigurationProperties标签详解
@Configuration
public class DruidConfig {
//@ConfigurationProperties(prefix = "spring.datasource")
//在new返回的数据源时,添加从主配置文件中取出以spring.datasource开头的数据,
//比如主配置文件中有数据 spring.datasource.url=2,则会寻找DruidDataSource
//类里的url属性,并注入值2 ,也就是说,如果配置文件中写的是
// luanqibazao.ceshi.url=2,标签应写为
// @ConfigurationProperties(prefix = "luanqibazao.ceshi")
//此时,也可正常向需要赋值的类中的url属性注入值2
//也就是说,prefix相当于其后所跟值的key 其后所跟值为value,并将此值注入指定的对象中
//同时也应该意识到,@ConfigurationProperties有两种用法,
//一、标注在类上,则在新生成该类对象时,都会向该新生对象的属性中注入指定的值
//二、标注在方法上,则在该方法返回对象时,也都会向该新生对象的属性中注入指定的值
@ConfigurationProperties(prefix = "spring.datasource")
@Bean
public String druid(){
//return new DruidDataSource();
return "";
}
}
五、@Configuration 标签和@Bean标签
**@Configuration ** 指明当前类是一个配置类,有了@Configuration标签,其类方法中的@Bean标签即可生效
类上没有打此标签@Bean标签便无效 相当于,MVC里的,类上没有@Controller 标签,就不会扫描其中的@RequestMapping 标签就不会生效,之所以这么要求可能是为了提高扫描效率
**@Bean **指明所标注的方法的返回值做为组件添加到容器中,添加到容器中后其属性名为其 标注的方法名