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常用註解內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!