1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > springboot自动装配原理_【springboot】基于springboot运行原理实现springboot的自动配置...

springboot自动装配原理_【springboot】基于springboot运行原理实现springboot的自动配置...

时间:2020-02-18 06:47:56

相关推荐

springboot自动装配原理_【springboot】基于springboot运行原理实现springboot的自动配置...

本文参照Http编码的配置源码,自己实现一个starter。

1.新建maven工程。

在pom.xml中修改,添加autoconfigure依赖:

4.0.0com.springboot springboot_starter 1.0-SNAPSHOTorg.apache.maven.plugins maven-compiler-plugin 2.51.81.8jarspringboot_starterUTF-8org.springframework.boot spring-boot-autoconfigure 1.5.8.RELEASEorg.springframework.boot spring-boot-configuration-processor 1.5.8.RELEASEtruejunit junit 3.8.1test4.0.0com.springboot springboot_starter 1.0-SNAPSHOTorg.apache.maven.plugins maven-compiler-plugin 2.51.81.8jarspringboot_starterUTF-8

2.属性配置类,代码如下。

package com.springboot; import org.springframework.boot.context.properties.ConfigurationProperties; import javax.naming.Name; @ConfigurationProperties(prefix = "user")public class UserInfoProperties { private static final String UNAME = "springboot"; private String uName = UNAME; public String getUName() { return uName; } public void setUName(String uName) { this.uName = uName; }}

3.判断依据类,代码如下。

package com.springboot; public class UserInfo { private String uName; public String getUserInfo(){ return "My name is " + getUName(); } public String getUName() { return uName; } public void setUName(String uName) { this.uName = uName; }}

4.自动配置类,代码如下。

package com.springboot; import org.springframework.beans.factory.annotation.Autowired;import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;import org.springframework.boot.context.properties.EnableConfigurationProperties;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration; @Configuration@EnableConfigurationProperties(UserInfoProperties.class)@ConditionalOnClass(UserInfo.class)@ConditionalOnProperty(prefix = "user

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。