Spring Boot自动配置实战 1、新建Spring-boot-starter-hello项目。 2、新建HelloService.java
package com.tzp.helloworld.helloservice;public class HelloService { private String msg; public String sayHello() { return "=======>>" + msg; } public String getMsg() { return msg; } public void setMsg(String msg) { this.msg = msg; }}
2、新建HelloServiceProperties.java
package com.tzp.helloworld.helloproperties;import org.springframework.boot.context.properties.ConfigurationProperties;@ConfigurationProperties(prefix = "hello")public class HelloServiceProperties { private static final String MSG = "World"; private String msg = MSG; public String getMsg() { return msg; } public void setMsg(String msg) { this.msg = msg; } }
3、新建HelloServiceAutoConfigration.java
package com.tzp.helloworld.helloServiceConfigration;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.ConditionalOnMissingClass;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;import com.tzp.helloworld.helloproperties.HelloServiceProperties;import com.tzp.helloworld.helloservice.HelloService;@Configuration@EnableConfigurationProperties(HelloServiceProperties.class)@ConditionalOnClass(HelloService.class)@ConditionalOnProperty(prefix = "hello",value = "enabled",matchIfMissing = true)public class HelloServiceAutoConfigration { @Autowired private HelloServiceProperties helloServiceProperties; @Bean @ConditionalOnMissingBean(HelloService.class) public HelloService helloService() { HelloService helloService = new HelloService(); helloService.setMsg(helloServiceProperties.getMsg()); return helloService; } }
4、mvn install将项目打成jar包,并将jar包添加到本地maven仓库。 5、接下来我们就可以在别的工程上使用该jar包了。
com.tzp spring-boot-starter-hello 1.0.0
hello: msg: 唐增平的springboot
package com.tzp.helloworld.controller;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.beans.factory.annotation.Value;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RestController;import com.tzp.helloworld.helloservice.HelloService;@RestControllerpublic class HelloSpringBoot { @Value("${melo.name}") private String name; @Autowired private HelloService helloService; @RequestMapping("/") public String hello() { return "hello spring boot " + name + helloService.getMsg(); }}
6、运行项目并访问。