验证中...
开源中国 2018 年度最后一场技术盛会邀你来约~错过就要等明年啦!点此立即预约
语言: Java
分类: Web开发技术
最后更新于 2018-12-06 22:18
片段 1 片段 2 片段 3 片段 4
gistfile1.txt
原始数据 复制代码
springboot自动配置的原理是基于3个核心注解:@EnableAutoConfiguration,用于开启自动配置功能;
@Configuration表示进行配置bean;@ConditionalOnClass条件注解,某个类在工程中存在的条件下才允许自动配置。
基于这个原理,是可以模仿并自行实现自动配置的。
BeautyAutoConfig.java
原始数据 复制代码
package com.demo.springbootdemo.autoconfigdemo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
@EnableConfigurationProperties(BeautyProperties.class)
@ConditionalOnClass(BeautyService.class)
public class BeautyAutoConfig {
@Autowired
private BeautyProperties beautyProperties;
@Bean
public BeautyService generateBeautyService() {
BeautyService beautyService = new BeautyService();
beautyService.setName(beautyProperties.getName());
beautyService.setHeight(beautyProperties.getHeight());
beautyService.setCupSize(beautyProperties.getCupSize());
beautyService.setCellPhoneNumber(beautyProperties.getCellPhoneNumber());
System.out.println("beauty=" + beautyService);
return beautyService;
}
}
BeautyProperties.java
原始数据 复制代码
package com.demo.springbootdemo.autoconfigdemo;
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
@ConfigurationProperties(prefix = "beauty")
@Data
public class BeautyProperties {
private String name;
private Integer height;
private String cupSize;
private String cellPhoneNumber;
}
BeautyService.java
原始数据 复制代码
package com.demo.springbootdemo.autoconfigdemo;
import lombok.Data;
@Data
public class BeautyService {
private String name;
private Integer height;
private String cupSize;
private String cellPhoneNumber;
}

评论列表( 0 )

你可以在登录后,发表评论

搜索帮助