springBoot系列常用注解(小结)

作者:喜羊羊love红太狼 时间:2023-12-17 23:26:45 

@PropertySource

作用是:对自定义的properties文件加载

使用:@PropertySource(value={"classpath:people.properties"})或者@PropertySource(value="classpath:people.properties")

springBoot系列常用注解(小结)

properties文件,获取到值乱码问题

springBoot系列常用注解(小结)

乱码解决:

file ->settings -->file encoding--> 勾选Transparent native-to-ascill conversion

springBoot系列常用注解(小结)

@ImportResource

作用:可以让spring的配置文件生效

springBoot系列常用注解(小结)

使用:在启用类上加ImportResource注解,如@ImportResource(value = "classpath:person.xml")或者@ImportResource(locations ={"classpath:person.xml"})

@Conditional

作用:必须是@Conditional指定的条件成立,才给容器中添加组件或者是让自动配置类生效。

springBoot系列常用注解(小结)

以 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文件中

springBoot系列常用注解(小结)

如何判断spring.factories这个文件中那些自动配置类是生效的?

在yml或者applicaton.properties中配置,会在控制台打印自动配置类生效报告:


########打印自动配置类生效的报告##########
debug =true

其中:Negative match:表示未生效;Positive match:表示生效的

springBoot系列常用注解(小结)

来源:https://blog.csdn.net/qq_38423256/article/details/115799792

标签:springBoot,常用注解
0
投稿

猜你喜欢

  • 深入了解java内存分配和回收策略

    2023-02-27 15:16:58
  • Java连接redis及基本操作示例

    2023-12-07 03:27:03
  • Android OkHttp代理与路由的彻底理解

    2023-03-17 01:21:51
  • C语言单向链表的表示与实现实例详解

    2022-01-24 21:38:33
  • JAVA调用SAP WEBSERVICE服务实现流程图解

    2023-11-07 03:54:57
  • C#中的延时函数sleep

    2022-08-05 13:16:49
  • Java super关键字的使用详解

    2021-11-30 13:40:43
  • 快速定位Java 内存OOM的问题

    2022-05-26 00:19:38
  • Java定时器问题实例解析

    2021-08-21 21:02:53
  • Java Socket编程(三) 服务器Sockets

    2023-05-24 21:18:19
  • java音乐播放器编写源码

    2022-08-02 21:06:44
  • Spring Cloud Eureka 服务上下线监控的实现

    2022-02-18 21:06:15
  • 如何利用C#正则表达式判断是否是有效的文件及文件夹路径

    2022-03-06 23:34:45
  • Java实现窗体程序显示日历

    2022-09-14 11:01:59
  • Java实现的上传并压缩图片功能【可等比例压缩或原尺寸压缩】

    2023-03-17 11:09:11
  • spring-cloud-stream结合kafka使用详解

    2022-05-19 14:32:50
  • java参数传递之值传递和引用传递

    2021-09-26 10:28:46
  • Java利用蒙特卡洛方法求解圆周率π值

    2023-04-10 14:10:28
  • C#实战之备忘录的制作详解

    2023-08-13 02:17:21
  • springcloud Zuul动态路由的实现

    2021-10-07 06:15:40
  • asp之家 软件编程 m.aspxhome.com