App下載

總結(jié)歸納SpringBoot中常用的一些注解

煙雨彷徨 2021-08-09 14:40:15 瀏覽數(shù) (2317)
反饋

SpringBoot作為當(dāng)下最為火熱、流行的微服務(wù)架構(gòu),深受廣大開發(fā)者和開發(fā)商的青睞。如果可以熟練應(yīng)用SpringBoot一些常用的注解,那么對(duì)于SpringBoot的項(xiàng)目開發(fā),就將會(huì)是事半功倍。下面,將為大家介紹SpringBoot中一些常用的注解,希望能夠?qū)Υ蠹业膶W(xué)習(xí)和工作能有所幫助!

@PropertySource

作用是:對(duì)自定義的properties文件加載

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

2021041910311636

properties文件,獲取到值亂碼問題

亂碼解決:

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

2021041910311638

@ImportResource

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

2021041910311639

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

@Conditional

作用:必須是@Conditional指定的條件成立,才給容器中添加組件或者是讓自動(dòng)配置類生效。

2021041910311640

以 HttpEncodingAutoConfiguration 自動(dòng)配置類舉例

@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 這個(gè)bean則實(shí)例化創(chuàng)建一個(gè),存在就不走下面的代碼

@ConditionalOnClass(CharacterEncodingFilter.class):作用是如果容器中存在CharacterEncodingFilter 這個(gè)bean(其中一個(gè)條件)則才能夠?qū)嵗邆€(gè)自動(dòng)配置類HttpEncodingAutoConfiguration 

@ConditionalOnProperty(prefix = "server.servlet.encoding", value = "enabled", matchIfMissing = true)作用是如果配置文件中配置了server.servlet.encoding=enabled則才能夠?qū)嵗哌@個(gè)個(gè)自動(dòng)配置類HttpEncodingAutoConfiguration 

springBoot中所有的自動(dòng)配置類位置:

orgspringframeworkootspring-boot-autoconfigure2.4.5spring-boot-autoconfigure-2.4.5.jar!META-INFspring.factories文件中

2021041910311641

如何判斷spring.factories這個(gè)文件中那些自動(dòng)配置類是生效的?

在yml或者applicaton.properties中配置,會(huì)在控制臺(tái)打印自動(dòng)配置類生效報(bào)告:

########打印自動(dòng)配置類生效的報(bào)告##########
debug =true

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

2021041910311642

以上關(guān)于SpringBoot項(xiàng)目中一些常用注解的介紹和具體使用方法的文章就介紹到此結(jié)束了,想要了解更多相關(guān)SpringBoot的其他注解的內(nèi)容,可以搜索W3Cschool其他相關(guān)技術(shù)文章,希望能對(duì)大家的學(xué)習(xí)有所幫助!

0 人點(diǎn)贊