主要内容摘自《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 | "hello") (prefix = |
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
,还可以在控制台看到我们的配置生效的结果