springBoot系列常用注解(小结)
@PropertySource
作用是:对自定义的properties文件加载
使用:@PropertySource(value={"classpath:people.properties"})或者@PropertySource(value="classpath:people.properties")
properties文件,获取到值乱码问题
乱码解决:
file ->settings -->file encoding--> 勾选Transparent native-to-ascill conversion
@ImportResource
作用:可以让spring的配置文件生效
使用:在启用类上加ImportResource注解,如@ImportResource(value = "classpath:person.xml")或者@ImportResource(locations ={"classpath:person.xml"})
@Conditional
作用:必须是@Conditional指定的条件成立,才给容器中添加组件或者是让自动配置类生效。
以 HttpEncodingAutoConfiguration 自动配置类举例
@Configuration(proxyBeanMethods = false)
@EnableConfigurationProperties(ServerProperties.class)
@ConditionalOnWebApplication(type = ConditionalOnWebApplication.Type.SERVLET)
@ConditionalOnClass(CharacterEncodingFilter.class)
@ConditionalOnProperty(prefix = "server.servlet.encoding", value = "enabled", matchIfMissing = true)
public class HttpEncodingAutoConfiguration {
private final Encoding properties;
public HttpEncodingAutoConfiguration(ServerProperties properties) {
this.properties = properties.getServlet().getEncoding();
}
@Bean
@ConditionalOnMissingBean
public CharacterEncodingFilter characterEncodingFilter() {
CharacterEncodingFilter filter = new OrderedCharacterEncodingFilter();
filter.setEncoding(this.properties.getCharset().name());
filter.setForceRequestEncoding(this.properties.shouldForce(Encoding.Type.REQUEST));
filter.setForceResponseEncoding(this.properties.shouldForce(Encoding.Type.RESPONSE));
return filter;
}
@ConditionalOnMissingBean:作用是如果容器中不存在CharacterEncodingFilter 这个bean则实例化创建一个,存在就不走下面的代码
@ConditionalOnClass(CharacterEncodingFilter.class):作用是如果容器中存在CharacterEncodingFilter 这个bean(其中一个条件)则才能够实例化者个自动配置类HttpEncodingAutoConfiguration
@ConditionalOnProperty(prefix = "server.servlet.encoding", value = "enabled", matchIfMissing = true)作用是如果配置文件中配置了server.servlet.encoding=enabled则才能够实例化者这个个自动配置类HttpEncodingAutoConfiguration
springBoot中所有的自动配置类位置:
org\springframework\boot\spring-boot-autoconfigure\2.4.5\spring-boot-autoconfigure-2.4.5.jar!\META-INF\spring.factories文件中
如何判断spring.factories这个文件中那些自动配置类是生效的?
在yml或者applicaton.properties中配置,会在控制台打印自动配置类生效报告:
########打印自动配置类生效的报告##########
debug =true
其中:Negative match:表示未生效;Positive match:表示生效的
到此这篇关于springBoot系列常用注解(小结)的文章就介绍到这了,更多相关springBoot常用注解内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341