阜阳商城网站建设,在手机上建网站,北京网站建设百度排名,平顶山有做网站的公司声明#xff1a;原文作者#xff1a;yuan_404 文章目录1. 说明2 . 编写启动器3 . 新建项目测试自己写的启动器1. 说明
启动器模块是一个 空 jar 文件#xff0c;仅提供辅助性依赖管理#xff0c;这些依赖可能用于自动装配或者其他类库
命名归约#xff1a; 官方命名原文作者yuan_404 文章目录1. 说明2 . 编写启动器3 . 新建项目测试自己写的启动器1. 说明
启动器模块是一个 空 jar 文件仅提供辅助性依赖管理这些依赖可能用于自动装配或者其他类库
命名归约 官方命名 前缀spring-boot-starter-xxx比如spring-boot-starter-web… 自定义命名 xxx-spring-boot-starter比如mybatis-spring-boot-starter
2 . 编写启动器 在IDEA中新建一个空项目 spring-boot-starter-diy 新建一个普通Maven模块demo-spring-boot-starter 新建一个Springboot模块demo-spring-boot-starter-autoconfigure 点击apply即可基本结构 在starter 中 导入 autoconfigure 的依赖 !-- 启动器 --
dependencies!-- 引入自动配置模块 --dependencygroupIdcom.demo/groupIdartifactIddemo-spring-boot-starter-autoconfigure/artifactIdversion0.0.1-SNAPSHOT/version/dependency
/dependencies 将 autoconfigure 项目下Pom中加入依赖 dependenciesdependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-configuration-processor/artifactIdoptionaltrue/optional/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-autoconfigure/artifactId/dependency
/dependencies 说明 第一个依赖 主要是为编译器配置的 可以根据properties 鼠标右键 点到用这个属性的类上个 第二个依赖 主要是为了自动装配 编写HelloProperties 配置类 // 前缀 demo.hello
ConfigurationProperties(prefix demo.hello)
public class HelloProperties {private String prefix;private String suffix;public String getPrefix() {return prefix;}public void setPrefix(String prefix) {this.prefix prefix;}public String getSuffix() {return suffix;}public void setSuffix(String suffix) {this.suffix suffix;}
} 这里我们要读取的配置就是demo.hello.prefix 和 demo.hello.suffix 的值 ConfigurationProperties注解的作用就是读取配置文件指定属性的值 编写一个自己的服务 public class HelloService {HelloProperties helloProperties;public HelloProperties getHelloProperties() {return helloProperties;}public void setHelloProperties(HelloProperties helloProperties) {this.helloProperties helloProperties;}public String sayHello(String name){return helloProperties.getPrefix() name helloProperties.getSuffix();}
} 编写自动配置类并注入bean测试 Configuration
ConditionalOnWebApplication //web应用生效
EnableConfigurationProperties(HelloProperties.class)
public class HelloServiceAutoConfiguration {AutowiredHelloProperties helloProperties;Beanpublic HelloService helloService(){HelloService service new HelloService();service.setHelloProperties(helloProperties);return service;}
} 说明 Configuration 标识本类是配置类相当于spring中application.xml EnableConfigurationProperties(HelloProperties.class) 如果 HelloProperties 中有注解ConfigurationProperties 那么这个类就 会被加到spring上下文的容器中也就是可以通过Autowire来注入 ConditionalOnClass 当类路径下有指定类的情况下 才进行下一步 ConditionalOnMissingBean 当spring容器中没有这个Bean的时候才进行下一步 在resources编写一个自己的 META-INF\spring.factories
java
# Auto Configure
org.springframework.boot.autoconfigure.EnableAutoConfiguration\
com.demo.config.HelloServiceAutoConfiguration编写完成后可以安装到maven仓库中 项目包结构
3 . 新建项目测试自己写的启动器 新建一个SpringBoot 项目(需要引入 web 的启动器) 导入我们自己写的启动器 dependencygroupIdcom.demo/groupIdartifactIddemo-spring-boot-starter/artifactIdversion1.0-SNAPSHOT/version
/dependency 编写一个 HelloController 进行测试我们自己的写的接口 RestController
public class HelloController {AutowiredHelloService helloService;RequestMapping(/hello)public String hello(){return helloService.sayHello(zxc);}} 编写配置文件 application.properties demo.hello.prefixMystarter-perfix--
demo.hello.suffix--Mystarter-suffix 启动项目进行测试结果成功