Spring 是轻量级的J2EE框架,两大核心就是依赖注入(Dependency Injection, DJ) 和 面向切面编程(Aspect-oriented Programming, AOP),以此来实现组件(称为Bean)之间的解耦。
Spring中组件装配可以通过XML配置,Java配置和自动配置。
Spring Boot旨在简化Spring的开发,主要分为四个主题:
- 自动装配
- 起步依赖
- 命令行界面
- Actuator
Spring Boot 入门
1.安装Spring CLI (Spring Command Line Interface).
1)Windows用户下载springboot-cli-1.3.0;
2)解压,将bin目录添加到系统路径中;
3)控制台运行 spring –version , 看到Spring CLI版本号,证明安装成功。
2.使用Spring Initializr 初始化一个Spring Boot项目。
可以通过以下工具使用Spring Initializr:
Spring CLI
Spring Tool Suite (STS) - Spring Boot 版 Eclipse
如果你已经有Eclipse,可以通过Help->Eclipse Marketplace->Popular 选择Spring Tool Suite (STS) 安装。
安装STS需要从Maven官网下载依赖包,国内网络下载比较慢,建议在安装Maven后, 在settings.xml中配置 阿里maven镜像如下:
<!-- 阿里云仓库 -->
<mirror>
<id>alimaven</id>
<mirrorOf>central</mirrorOf>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/repositories/central/</url>
</mirror>
<!-- 中央仓库1 -->
<mirror>
<id>repo1</id>
<mirrorOf>central</mirrorOf>
<name>Human Readable Name for this Mirror.</name>
<url>http://repo1.maven.org/maven2/</url>
</mirror>
<!-- 中央仓库2 -->
<mirror>
<id>repo2</id>
<mirrorOf>central</mirrorOf>
<name>Human Readable Name for this Mirror.</name>
<url>http://repo2.maven.org/maven2/</url>
</mirror>
</mirrors>
下面的例子以Eclipse安装了STS为例,创建一个Spring Boot项目:
Step 1: New->Spring Starter Project (见New->other->Spring菜单);
Step 2: 填写完Group,Archifact等信息之后;
Step 3: 选择依赖的dependecies, 通过起步依赖, Spring Boot为自动添加所需的依赖。
例如创建一个Web project,可以选择下列依赖:
Web->Web.
SQL->JPA, MySQL.
Template Engines->Thymeleaf.
创建完成,项目中包括标准的目录结构,生成的pom.xml文件中将包括所需的 dependencies.
示例:
DemoApplication.java作为配置类有两个作用:配置和启动引导。
@SpringBootApplication开启了Spring的组件扫描和Spring Boot的自动配置功能。实际上,@SpringBootApplication将三个有用的注解组合在了一起:
Spring的@Configuration:标明该类使用Spring基于Java的配置。虽然本书不会写太多配置,但我们会更倾向于使用基于Java而不是XML的配置。
Spring的@ComponentScan:启用组件扫描,这样你写的Web控制器类和其他组件才能被自动发现并注册为Spring应用程序上下文里的Bean。
Spring Boot的@EnableAutoConfiguration: 这个不起眼的小注解也可以称为@Abracadabra,就是这一行配置开启了Spring Boot自动装配的魔力,让你不用再写成篇的配置了。
main方法启动引导应用程序,可以通过选择菜单Spring Boot App运行。也可以通过命令
mvn package生成demo-0.0.1-SNAPSHOT.jar,然后运行 java -jar demo-0.0.1-SNAPSHOT.jar。
SpringBootServletInitializer是一个支持Spring Boot的Spring WebApplicationInitializer实现。除了配置Spring的Dispatcher-Servlet,
SpringBootServletInitializer还会在Spring应用程序上下文里查找Filter、Servlet或ServletContextInitializer类型的Bean,把它们绑定到Servlet容器里。
部署至支持servlet3.0+的web容器中如tomcat,主要能够起到web.xml的作用。
要使用SpringBootServletInitializer,只需创建一个子类,覆盖configure()方法来指定Spring配置类 。
public class DemoServletInitializer extends SpringBootServletInitializer {
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
return builder.sources(DemoApplication.class);
}
}