主要内容摘自《Java EE的颠覆者 SpringBoot实战-汪云飞》,以下为学习笔记与实现代码,仅供交流学习
1. SpringBoot实现原理
Springboot只所以能实现快速开发,其中最重要的特征就是spring-boot-starter与自动配置,前者将常用的依赖分组进行整合,将其合并到一个依赖中;后者则是利用了Spring4.x+对条件化配置的支持,合理地推测应用所需的bean并自动配置他们,这些则符合springboot的设计理念-习惯优于配置,从而大大减少繁多的配置,提高开发效率
2. 实现步骤
1. IDEA新建maven项目


2. 修改pom.xml文件
1 | <groupId>com.xzp</groupId> |
3. 新建配置属性类
- maven创建项目时,如果相关的目录,则可以手动建立
HelloServiceProperties.java
1 | (prefix = "hello") |
4. 判断服务类
该示例中通过判断此类的存在与否来创建这个类的Bean,这个类可以是第三方类库的类
HelloService.java
1 | public class HelloService { |
5. 自动配置类
HelloServiceAutoConfiguration.java- 根据 HelloServiceProperties 提供的参数,并通过@ConditionalOnClass 判断 HelloService 这 个类在类路径中是否存在,且当容器中没有这个 Bean 的情况下自动配置这个 Bean.
1 |
|
6. 注册配置
若想配置生效,需要注册自动配置类。在
src/main/resources下新建META-INF/spring.factories,,项目目录结构如下所示:
spring.factories内容如下:
1 | org.springframework.boot.autoconfigure.EnableAutoConfiguration=com.xzp.spring_boot_starter_hello.HelloServiceAutoConfiguration |
7. 安装到本地库
- 执行命令:
mvn install安装到本地库,或者将这个jar包发布到Maven私服上
1 | tarter-hello-1.0-SNAPSHOT.pom |
8. 新建测试项目
- 新建SpringBoot项目,本文示例为
ch6_5项目,对应于书中的章节, - 新建测试的
Controller,
1 |
|
- 目录结果如下:

- 启动
SpringBoot,此时application.properties中未添加任何内容,浏览器中输入localhost:8080,结果如下:

上述结果表明默认的配置生效了,测试我们修改application.properties内容如下,再重新启动
1
hello.msg=xiongzp08
则运行结果如下:

可以看到相应的结果发生变化了
如果在
application.properties中添加debuge=true,还可以在控制台看到我们的配置生效的结果