高级框架-SpringBoot【悟空教程】

Spring Boot

第1章 Spring Boot 简介

Spring 诞生时是 Java 企业版(Java Enterprise Edition,JEE,也称 J2EE)的轻量级代替品。无需开发重量级的 Enterprise JavaBean(EJB),Spring 为企业级 Java 开发提供了一种相对简单的方法,通过依赖注入和面向切面编程,用简单的 Java 对象(Plain Old Java Object,POJO)实现了 EJB 的功能。

虽然 Spring 的组件代码是轻量级的,但它的配置却是重量级的。

第一阶段:xml 配置

在 Spring 1.x 时代,使用 Spring 开发满眼都是 xml 配置的 Bean,随着项目的扩大,我们需要把 xml配置文件放到不同的配置文件里,那时需要频繁的在开发的类和配置文件之间进行切换

第二阶段:注解配置

在 Spring 2.x 时代,随着 JDK1.5 带来的注解支持,Spring 提供了声明 Bean 的注解(例如@Component、@Service),大大减少了配置量。主要使用的方式是应用的基本配置(如数据库配置)用 xml,业务配置用注解

第三阶段:java 配置

Spring 3.0 引入了基于 Java 的配置能力,这是一种类型安全的可重构配置方式,可以代替 XML。我们目前刚好处于这个时代,Spring4.x 和 Spring Boot 都推荐使用 Java 配置。

所有这些配置都代表了开发时的损耗。 因为在思考 Spring 特性配置和解决业务问题之间需要进行思维切换,所以写配置挤占了写应用程序逻辑的时间。除此之外,项目的依赖管理也是件吃力不讨好的事情。决定项目里要用哪些库就已经够让人头痛的了,你还要知道这些库的哪个版本和其他库不会有冲突,这难题实在太棘手。并且,依赖管理也是一种损耗,添加依赖不是写应用程序代码。一旦选错了依赖的版本,随之而来的不兼容问题毫无疑问会是生产力杀手。

Spring Boot 让这一切成为了过去。

Spring Boot 简化了基于 Spring 的应用开发,只需要“run”就能创建一个独立的、生产级别的 Spring应用。Spring Boot 为 Spring 平台及第三方库提供开箱即用的设置(提供默认设置),这样我们就可以简单的开始。多数 Spring Boot 应用只需要很少的 Spring 配置。

我们可以使用 SpringBoot 创建 java 应用,并使用 java –jar 启动它,或者采用传统的 war 部署方式。

Spring Boot 主要目标是:

为所有 Spring 的开发提供一个从根本上更快的入门体验

开箱即用,但通过自己设置参数,即可快速摆脱这种方式。

提供了一些大型项目中常见的非功能性特性,如内嵌服务器、安全、指标,健康检测、外部化配置等

绝对没有代码生成,也无需 XML 配置。

第2章 Spring Boot 入门

2.1 环境搭建

2.1.1 环境需求

数据库:MySQL

IDE:Eclipse Mars2

Spring-Boot:1.4.4

Maven: 3.3.3 (官方声明 1.4.4 版本需要 Maven 3.2+)

本地仓库:需要使用资料中的仓库

2.1.2 创建一个 Maven 工程并添加起步依赖

添加依赖

在 pom.xml 中添加依赖,效果如下

<parent> 
<groupId>org.springframework.boot</groupId> 
<artifactId>spring-boot-starter-parent</artifactId> 
<version>1.4.4.RELEASE</version> 
</parent> 
<groupId>cn.com.javahelp.springboot</groupId> 
<artifactId>javahelp-springboot</artifactId> 
<version>0.0.1-SNAPSHOT</version> 
<dependencies> 
<dependency> 
<groupId>org.springframework.boot</groupId> 
<artifactId>spring-boot-starter-web</artifactId> 
</dependency> 
</dependencies> 

我们会惊奇地发现,我们的工程自动添加了好多好多 jar 包,而这些 jar 包正式我们做开发时需要导入的jar 包。

因 为 这 些 jar 包 被 我 们 刚 才 加 入 的 spring-boot-starter-web 所 引 用 了 , 所 以 添 加spring-boot-starter-web 后会自动把依赖传递过来。

2.1.3 变更 JDK 版本(如果做了 maven 全局配置可略过此步)

我们发现默认情况下工程的 JDK 版本是 1.6,但是通常使用的是 1.7 的版本

修改 JDK 为 1.7,需要在 pom.xml 中添加以下配置:

<properties>
<java.version>1.7</java.version>
</properties>

使用 Maven 更新工程后,就发现版本已经变成 1.8 了

注意:

虽然 JDK1.6 或者 1.7 都可以使用 Spring-Boot,但 Spring-Boot 官方建议使用 JDK1.8。要使用JDK1.8,首先必须要配置 JDK1.8 后,才可以使用上述方法设置。

2.1.4 编写引导类并使用注解配置

需要创建一个引导类:

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication; 
@SpringBootApplication 
public class Demo {
public static void main(String[] args) { 
SpringApplication.run(Demo.class, args); 
} 
} 

这里多了一个@SpringBootApplication 注解

@Configuration: 用于定义一个配置类

@EnableAutoConfiguration :Spring Boot 会自动根据你 jar 包的依赖来自动配置项目。

@ComponentScan: 告诉 Spring 哪个 packages 的用注解标识的类会被 spring

自动扫描并且装入 bean 容器。

Banner

直接启动,控制台出现以下标识。

这个标识是 Spring 启动标识,如果不想要,可以设置取消

import org.springframework.boot.Banner.Mode; 
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication; 
@SpringBootApplication 
public class Application { 
public static void main(String[] args) { 
// SpringApplication.run(Application.class, args);
SpringApplication application = new SpringApplication(Application.class);
application.setBannerMode(Mode.OFF);
application.run(args);
} 
} 

参考附录二的 banner 设置,可以通过修改配置文件制定自己的标识。

2.1.5 测试环境搭建结果

在地址栏输入:http://localhost:8080,看到下图即表示搭建成功

2.2 入门程序

2.2.1 需求

使用 Spring MVC 和 Spring Boot 整合实现浏览器输出 Hello Spring Boot!

2.2.2 原来的实现

我们现在开始使用 spring MVC 框架,实现 json 数据的输出。如果按照我们原来的做法,需要在 web.xml 中添加一个 DispatcherServlet 的配置,还需要添加一个 spring 的配置文件,配置文件如下配置

spring 加入配置

<!-- controller 注解扫描 -->
<context:component-scan base-package="cn.com.javahelp.springboot.controller" /> 
<!-- 注解驱动 -->
<mvc:annotation-driven /> 
web.xml 加入配置 
<!-- 配置前端控制器 -->
<servlet> 
<servlet-name> javahelp-springboot</servlet-name> 
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 
<init-param> 
<param-name>contextConfigLocation</param-name> 
<param-value>classpath:spring/*.xml</param-value>
</init-param> 
</servlet>
<servlet-mapping> 
<servlet-name> javahelp-springboot</servlet-name> 
<url-pattern>/</url-pattern> 
</servlet-mapping> 

还要编写 Controller。。。

2.2.3 Spring-Boot 的实现

我们不需要配置文件,直接编写 Controller 类即可

import org.springframework.web.bind.annotation.RequestMapping; 
import org.springframework.web.bind.annotation.RestController; 
@RestController 
public class HelloWorldController { 
@RequestMapping("hello") 
public String info() { 
return "Hello Spring Boot!"; 
} 
} 

@RestController 注解:

其实就是@Controller 和@ResponseBody 注解加在一起

启动方式一:启动之前编写的引导类即可

启动方式二:使用 Maven 命令 spring-boot:run 执行即可

选择 Maven Build

在浏览器地址栏输入 http://localhost:8080/hello 即可看到运行结果

2.3 热部署

我们在开发中反复修改类、页面等资源,每次修改后都是需要重新启动才生效,这样每次启动都很麻烦,浪费了大量的时间。

能不能在我修改代码后不重启就能生效呢?可以,由于 Spring Boot 应用只是普通的 Java 应用,所以 JVM热交换(hot-swapping)也能开箱即用。不过 JVM 热交换能替换的字节码有限制,想要更彻底的解决方案可以使用 Spring Loaded 项目或 JRebel。 spring-boot-devtools 模块也支持应用快速重启(restart)。

2.3.1 导入 maven 依赖

我们只需要在 pom.xml 加入如下配置即可

<dependency> 
<groupId>org.springframework.boot</groupId> 
<artifactId>spring-boot-devtools</artifactId> 
</dependency>

2.3.2 在 eclipse 中配置启动参数

-javaagent:E:/MavenRepository/org/springframework/springloaded/1.2.9/springloaded-1.2.9.jar -noverify

2.3.3 特殊说明

在 spring5.x 时,必须使用 springloaded 最新版 1.2.9。因为 spring5.x 采用的是 1.8 为内核编写的。而springloaded1.2.9 以前的版本都不支持 spring5.x。

这个 jar 包需无法通过在 pom.xml 中导入依赖自动下载。需要我们自己下载并且手动安装到 maven 仓库。

maven 命令:

首先通过 cmd 窗口进入到 jar 所在目录,然后拷贝下面的命令到控制台。回车运行。

mvn install:install-file -DgroupId=org.springframework -DartifactId=springloaded -Dversion=1.2.9 -Dpackaging=jar -Dfile=springloaded-1.2.9.BUILD.jar

注意:

安装 jar 包时,jar 存放目录最好别有中文和空格。

第3章 SpringBoot 整合

3.1 整合 Spring Data JPA

3.1.1 需求

使用 Spring Boot + Spring MVC + Spring Data JPA + EasyUI 框架组合实现部门列表查询,效果如下:

3.1.2 环境准备

3.1.2.1 导入数据库表

在 MySQL 数据库执行以下语句

DROP TABLE IF EXISTS `user`; 
CREATE TABLE `user` ( 
`id` bigint(20) NOT NULL AUTO_INCREMENT, 
`user_name` varchar(100) DEFAULT NULL COMMENT \\'用户名\\',
`password` varchar(100) DEFAULT NULL COMMENT \\'密码\\', 
`name` varchar(100) DEFAULT NULL COMMENT \\'姓名\\', 
PRIMARY KEY (`id`) 
) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8;
INSERT INTO `user` VALUES (\\'1\\', \\'zhangsan\\', \\'123456\\', \\'张三\\');
INSERT INTO `user` VALUES (\\'2\\', \\'lisi\\', \\'123456\\', \\'李四\\');
INSERT INTO `user` VALUES (\\'3\\', \\'wangwu\\', \\'123456\\', \\'王五\\'); 
INSERT INTO `user` VALUES (\\'4\\', \\'zhangwei\\', \\'123456\\', \\'张伟\\');
INSERT INTO `user` VALUES (\\'5\\', \\'lina\\', \\'123456\\', \\'李娜\\');
INSERT INTO `user` VALUES (\\'6\\', \\'lilei\\', \\'123456\\', \\'李磊\\');

3.1.2.2 创建 Maven 工程

javahelp-info(打 jar 包),在 pom.xml 中进行如下配置 
<parent> 
<groupId>org.springframework.boot</groupId> 
<artifactId>spring-boot-starter-parent</artifactId> 
<version>1.4.4.RELEASE</version> 
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId> 
<artifactId>spring-boot-starter-web</artifactId> 
<version>1.4.4.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId> 
<artifactId>spring-boot-devtools</artifactId>
<version>1.4.4.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId> 
<artifactId>spring-boot-starter-data-jpa</artifactId>
<version>1.4.4.RELEASE</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.6</version>
</dependency>
</dependencies> 

3.1.2.3 加入 Spring-Boot 配置文件

在 src/main/resources 下添加 application.properties 配置文件,内容如下: 
#DB Configuration: 
spring.datasource.driverClassName=com.mysql.jdbc.Driver 
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/taotao 
spring.datasource.username=root 
spring.datasource.password=root 
#JPA Configuration:
spring.jpa.database=MySQL 
spring.jpa.show-sql=true
spring.jpa.generate-ddl=true 
spring.jpa.hibernate.ddl-auto=update 
spring.jpa.hibernate.naming_strategy=org.hibernate.cfg.ImprovedNamingStrategy 
此文件用于覆盖 Spring Boot 的默认配置,完整的配置信息参考“附录 2” 

3.1.3 后端实现

3.1.3.1 创建实体类

import javax.persistence.Entity; 
import javax.persistence.Id; 
@Entity 
public class User { 
@Id 
private Long id; 
private String userName; 
private String password; 
private String name; 
//添加 get 和 set 方法 
}

3.1.3.2 创建 DAO 接口

import org.springframework.data.jpa.repository.JpaRepository; 
import cn.com.javahelp.info.pojo.User; 
public interface UserDao extends JpaRepository<User, Long> { 
}

3.1.3.3 创建业务逻辑接口

import java.util.List; 
import cn.com.javahelp.info.pojo.User; 
public interface UserService { 
List<User> findAll(); 
}

3.1.3.4 创建业务逻辑实现类

import java.util.List; 
import org.springframework.beans.factory.annotation.Autowired; 
import org.springframework.stereotype.Service; 
import cn.com.javahelp.info.dao.UserDao; 
import cn.com.javahelp.info.pojo.User; 
import cn.com.javahelp.info.service.UserService; 
@Service 
public class UserServiceImpl implements UserService { 
@Autowired 
private UserDao userDao; 
@Override 
public List<User> findAll() { 
List<User> list = this.userDao.findAll(); 
return list; 
} 
}

3.1.3.5 创建 Controller

import java.util.List; 
import org.springframework.beans.factory.annotation.Autowired; 
import org.springframework.web.bind.annotation.RequestMapping; 
import org.springframework.web.bind.annotation.RestController; 
import cn.com.javahelp.info.pojo.User; 
import cn.com.javahelp.info.service.UserService; 
@RestController 
@RequestMapping("user") 
public class UserControlelr { 
@Autowired 
private UserService userService; 
@RequestMapping("list") 
public List<User> queryUserAll() { 
List<User> list = this.userService.findAll(); 
return list; 
} 
}

3.1.3.6 创建引导类

import org.springframework.boot.SpringApplication; 
import org.springframework.boot.autoconfigure.SpringBootApplication; 
@SpringBootApplication 
public class Application { 
public static void main(String[] args) { 
SpringApplication.run(Application.class, args); 
} 
}

运行引导类 Application,打开浏览器输入 http://127.0.0.1:8080/user/list

3.1.4 前端实现

把资料中的 static 文件夹,拷贝到 src/main/resources 路径下

浏览器地址栏输入:http://127.0.0.1:8080/user.html,效果如下

运行引导类 Application

3.2 整合 MyBatis

3.2.1 加入依赖

在 pom.xml 中加入以下依赖 
<!-- SpringBoot 的 Mybatis 启动器 -->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId> 
<version>1.1.1</version>
</dependency>
3.2.2 编写 Mapper 
和之前的方式一样,只是多了两个注解 
@Mapper:声明 Mapper 接口 
@Select:声明这个接口所需要使用的 sql,当然,有查询的注解,肯定就有增删改的注解。 
import java.util.List; 
import org.apache.ibatis.annotations.Mapper; 
import org.apache.ibatis.annotations.Select; 
import cn.com.javahelp.info.pojo.User; 
@Mapper 
public interface UserMapper { 
@Select("select * from user where name like \\'%${value}%\\'") 
public List<User> queryUserByName(String name);
} 

3.2.3 编写 Service 和 Controller

添加 Service 调用 Mapper 
@Service 
public class UserServiceImpl implements UserService { 
@Autowired
private UserDao userDao; 
@Autowired
private UserMapper userMapper; 
@Override 
public List<User> findAll() { 
List<User> list = this.userDao.findAll(); 
return list; 
} 
@Override 
public List<User> queryUserByName(String name) { 
List<User> list = this.userMapper.queryUserByName(name); 
return list; 
} 
} 
修改 Controller 
@RestController 
@RequestMapping("user") 
public class UserControlelr { 
@Autowired
private UserService userService; 
@RequestMapping("list")
public List<User> queryUserAll() { 
List<User> list = this.userService.findAll();
return list; 
} 
@RequestMapping("list/{name}") 
public List<User> queryUserAll(@PathVariable String name) { 
List<User> list = this.userService.queryUserByName(name); 
return list; 
} 
} 

3.2.4 测试

浏览器地址栏输入:http://127.0.0.1:8080/user/list/张

显示效果:

3.3 整合 Redis

3.3.1 注解方式实现添加缓存

需求:基于上例代码,将列表数据缓存到 Redis

3.3.2 加入依赖

在 pom.xml 加入依赖

<!-- 配置使用 redis 启动器 --> 
<dependency> 
<groupId>org.springframework.boot</groupId> 
<artifactId>spring-boot-starter-redis</artifactId> 
</dependency>

3.3.2.1 修改引导类

修改开启缓存,添加注解@EnableCaching

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication; 
import org.springframework.cache.annotation.EnableCaching;
@SpringBootApplication 
@EnableCaching
public class Application { 
public static void main(String[] args) { 
SpringApplication.run(Application.class, args); 
} 
} 

3.3.2.2 设置实现序列化接口

需要修改实体,让实体实现序列化接口

@Entity 
public class User implements Serializable { 
@Id
private Long id; 
private String userName; 
private String password; 
private String name;
。。。。。。 
} 
3.3.2.3 实现添加/删除缓存 
修改 UserServiceImpl,添加@Cacheable 注解实现缓存添加 
@Override
@Cacheable(value = "userCache", key = "\\'user.findAll\\'") 
public List<User> findAll() { 
System.out.println("从 Mysql 中查询"); 
List<User> list = this.userDao.findAll(); 
return list;
} 
@Override
@CacheEvict(value = "userCache", ,allEntries=true) 
public List<User> queryUserByName(String name) {
System.out.println("缓存清理了!"); 
List<User> list = this.userMapper.queryUserByName(name); 
return list;
} 

这 样 设 置 完 成 后 , 执 行 findAll() 方 法 就 会 使 用 缓 存 , 如 果 缓 存 没 有 就 添 加 缓 存 , 而queryUserByName(String name)方法则是删除缓存

@Cacheable:添加/使用缓存

@CacheEvict:删除缓存

属性 value 是缓存的名字,在执行的时候,会找叫这个名字的缓存使用/删除

属性 key 默认情况下是空串””,是 Spring 的一种表达式语言 SpEL,我们这里可以随意指定,但是需要注意一定要加单引号

属性 allEntries 指定是否清空整个缓存区。

3.4 整合 junit

3.4.1 加入依赖

在 pom.xml 中加入测试依赖 
<!-- 配置测试启动器 --> 
<dependency> 
<groupId>org.springframework.boot</groupId> 
<artifactId>spring-boot-starter-test</artifactId> 
<scope>test</scope> 
</dependency> 
3.4.2 编写测试类 
/** 
* <p>Title: SpringBootTest</p> 
* <p>Description: </p> 
* <p>Company: http://www.javahelp.com.cn/ </p>  
*/ 
@RunWith(SpringJUnit4ClassRunner.class) 
@SpringBootTest(classes=ApplicationRunner.class) 
public class SpringBootJunitTest { 
@Autowired 
private IUserService userService; 
@Test 
public void test1() { 
List<User> users = userService.findAll(); 
for(User user : users) { 
System.out.println(user); 
}
} 
} 
SpringRunner 与 SpringJUnit4ClassRunner 是继承关系,但是没有不同的地方,只是看起来子类SpringRunner 要短一些而已。 
@SpringBootTest 注解的 class 属性要指定引导类的 class 

第4章 Spring Boot 深入学习

4.1 读取配置文件

4.1.1 读取核心配置文件

/** 
* <p>Title: SpringBootTest</p> 
* <p>Description: 读取配置文件</p> 
* <p>Company: http://www.javahelp.com.cn/ </p>  
*/ 
@RunWith(SpringJUnit4ClassRunner.class) 
@SpringBootTest(classes=ApplicationRunner.class) 
public class ConfigFileTest { 
@Resource 
private Environment env; 
/** 
* 读取核心配置文件 
*/ 
@Test 
public void test1() { 
System.out.println(env.getProperty("spring.datasource.username")); 
System.out.println(env.getProperty("spring.datasource.password")); 
} 
}

4.1.2 读取自定义文件

在工程的 src/main/resources 下构建自定义配置文件 mail.properties, 内容如下

mail.host=smtp.sina.com 
mail.port=25 
mail.username=javahelp 
mail.password=wukong
/** 
* <p>Title: MailProperties</p> 
* <p>Description: </p> 
* <p>Company: http://www.javahelp.com.cn/ </p>  
*/ 
@Configuration 
@PropertySource(value="classpath:mail.properties") 
@ConfigurationProperties(prefix="mail",ignoreUnknownFields = false) 
public class MailProperties { 
private String host;//smtp.sina.com 
private String port;//=25 
private String username;//=javahelp 
private String password;//=wukong 
public String getHost() { 
return host; 
} 
public void setHost(String host) { 
this.host = host; 
} 
public String getPort() { 
return port; 
} 
public void setPort(String port) { 
this.port = port; 
} 
public String getUsername() { 
return username; 
} 
public void setUsername(String username) { 
this.username = username; 
} 
public String getPassword() { 
return password; 
} 
public void setPassword(String password) { 
this.password = password; 
} 
@Override 
public String toString() { 
return "MailProperties [host=" + host + ", port=" + port + ", username=" + username + ", password=" + password + "]"; 
} 
}
/** 
* <p>Title: SpringBootTest</p> 
* <p>Description: 读取配置文件</p> 
* <p>Company: http://www.javahelp.com.cn/ </p>  
*/ 
@RunWith(SpringJUnit4ClassRunner.class) 
@SpringBootTest(classes=ApplicationRunner.class) 
public class ConfigFileTest { 
@Autowired 
private MailProperties mailProperties; 
/** 
* 读取自定义配置文件 
*/ 
@Test 
public void test2() { 
System.out.println(mailProperties); 
} 
}

4.1.3 读取 yml 文件

YML 文件格式是 YAML (YAML Aint Markup Language)编写的文件格式,YAML 是一种直观的能够被电脑识别的的数据数据序列化格式,并且容易被人类阅读,容易和脚本语言交互的,可以被支持 YAML 库的不同的编程语言程序导入,比如: C/C++, Ruby, Python, Java, Perl, C#, PHP 等。YML 文件是以数据为核心的,比传统的 xml 方式更加简洁。

YML 文件的扩展名可以使用.yml 或者.yaml。

在 maven 工程中 yml 文件创建的位置是:

4.1.3.1 语法格式:

普通数据:

key:value

在 key 和 value 中必须有一个空格

对象数据:

mail:

host: smtp.sina.com

port: 25

username: javahelp

password: wukong

4.1.3.2 获取方式

yml 文件为:

第一种:使用@Value 注解配合 Spring EL 表达式

@Value("${mail.host}")

private String mailHost;

第二种方式:使用@ConfigurationProperties 注解

/** 
* <p>Title: Mailyml</p> 
* <p>Description: </p> 
* <p>Company: http://www.javahelp.com.cn/ </p>  
*/ 
@Configuration 
@ConfigurationProperties(prefix="mail") 
public class Mailyml implements Serializable { 
private String host; 
private String port; 
private String username; 
private String password; 
public String getHost() { 
return host; 
} 
public void setHost(String host) { 
this.host = host; 
} 
public String getPort() { 
return port; 
} 
public void setPort(String port) { 
this.port = port; 
} 
public String getUsername() { 
return username; 
} 
public void setUsername(String username) { 
this.username = username; 
} 
public String getPassword() { 
return password; 
} 
public void setPassword(String password) { 
this.password = password; 
} 
@Override 
public String toString() { 
return "Mailyml [host=" + host + ", port=" + port + ", username=" + username + ", password=" + password + "]"; 
} 
}
测试代码: 
/** 
* 读取自定义配置文件 
*/ 
@Test 
public void test3() { 
System.out.println(mailYml); 
System.out.println(mailHost); 
}

运行结果:

第5章 附录 1. Spring-boot 的启动器

(摘自 Spring-boot 1.4.4 官方文档)

1. Spring Boot application starters

spring-boot-starter-thymeleaf

使用 Thymeleaf 视图构建 MVC Web 应用程序

spring-boot-starter-ws

使用 Spring Web 服务。1.4 不推荐使用,推荐使用 spring-boot-starter-web-services

spring-boot-starter-data-couchbase

Starter for using Couchbase document-oriented database and Spring Data Couchbase

spring-boot-starter-artemis

使用 Apache Artemis 启动 JMS 消息传递

spring-boot-starter-web-services

使用 Spring Web 服务

spring-boot-starter-mail

支持使用 Java Mail 和 Spring Framework 发送电子邮件

spring-boot-starter-data-redis

使用 Redis 键值数据存储与 Spring Data Redis 和 Jedis 客户端

spring-boot-starter-web

启动器构建 web,包括 RESTful,使用 Spring MVC 的应用程序。使用 Tomcat 作为默认嵌入式容器

spring-boot-starter-data-gemfire

Starter for using GemFire distributed data store and Spring Data GemFire

spring-boot-starter-activemq

使用 Apache ActiveMQ 启动 JMS 消息传递

spring-boot-starter-data-elasticsearch

使用 Elasticsearch 搜索和分析引擎和 Spring Data Elasticsearch

spring-boot-starter-integration

Starter for using Spring Integration

spring-boot-starter-test

Spring Boot 应用程序用于测试包括 JUnit,Hamcrest 和 Mockito

spring-boot-starter-hornetq

使用 HornetQ 启动 JMS 消息传递。1.4 已弃用,推荐使用 spring-boot-starter-artemis

spring-boot-starter-jdbc

使用 JDBC 与 Tomcat JDBC 连接池

spring-boot-starter-mobile

使用 Spring Mobile 构建 Web 应用程序的入门

spring-boot-starter-validation

使用 Java Bean 校验与 Hibernate 校验器

spring-boot-starter-hateoas

使用 Spring MVC 和 Spring HATEOAS 构建基于超媒体的 RESTful Web 应用程序的入门

spring-boot-starter-jersey

使用 JAX-RS 和 Jersey 构建 RESTful Web 应用程序的入门。 spring-boot-starter-web 的替代品

spring-boot-starter-data-neo4j

使用 Neo4j 图数据库和 Spring Data Neo4j

spring-boot-starter-websocket

使用 Spring Framework 的 WebSocket 支持构建 WebSocket 应用程序

spring-boot-starter-aop

使用 Spring AOP 和 AspectJ 进行面向方面编程

spring-boot-starter-amqp

使用 Spring AMQP 和 Rabbit MQ 的入门

spring-boot-starter-data-cassandra

使用 Cassandra 分布式数据库和 Spring Data Cassandra

spring-boot-starter-social-facebook

使用 Spring Social Facebook

spring-boot-starter-jta-atomikos

使用 Atomikos 进行 JTA 事务

spring-boot-starter-security

使用 Spring Security

spring-boot-starter-mustache

使用 Mustache 视图构建 MVC Web 应用程序

spring-boot-starter-data-jpa

使用 Spring Data JPA 与 Hibernate

spring-boot-starter

核心启动器,包括自动配置支持,日志记录和 YAML

spring-boot-starter-velocity

使用 Velocity 视图构建 MVC Web 应用程序。1.4 已弃用

spring-boot-starter-groovy-templates

使用 Groovy 模板视图构建 MVC Web 应用程序

spring-boot-starter-freemarker

使用 FreeMarker 视图构建 MVC Web 应用程序

spring-boot-starter-batch

使用 Spring Batch

spring-boot-starter-redis

使用 Redis 键值数据存储与 Spring Data Redis 和 Jedis 客户端的入门。1.4 已弃用,建议使用spring-boot-starter-data-redis

spring-boot-starter-social-linkedin

Stater for using Spring Social LinkedIn

spring-boot-starter-cache

支持使用 Spring Framework 的缓存

spring-boot-starter-data-solr

使用带有 Spring Data Solr 的 Apache Solr 搜索平台

spring-boot-starter-data-mongodb

使用 MongoDB 和 Spring Data MongoDB

spring-boot-starter-jooq

使用 jOOQ 访问 SQL 数据库。 spring-boot-starter-data-jpa 或 spring-boot-starter-jdbc 的替代方法

spring-boot-starter-jta-narayana

Spring Boot 启动 Narayana JTA

spring-boot-starter-cloud-connectors

启动者使用 Spring Cloud 连接器,简化了连接到云平台中的服务,如 Cloud Foundry 和 Heroku

spring-boot-starter-jta-bitronix

使用 Bitronix 进行 JTA 事务

spring-boot-starter-social-twitter

使用 Spring Social Twitter

spring-boot-starter-data-rest

使用 Spring Data REST 通过 REST 暴露 Spring 数据存储库

2. Spring Boot production starters

spring-boot-starter-actuator

使用 Spring Boot 的 Actuator,提供生产就绪的功能,以帮助您监视和管理您的应用程序

spring-boot-starter-remote-shell

使用 CRaSH 远程 shell 通过 SSH 监视和管理您的应用程序

3. Spring Boot technical starters

spring-boot-starter-undertow

使用 Undertow 作为嵌入式 servlet 容器。 spring-boot-starter-tomcat 的替代方法

spring-boot-starter-jetty

使用 Jetty 作为嵌入式 servlet 容器的。 spring-boot-starter-tomcat 的替代方法

spring-boot-starter-logging

使用 Logback 进行日志记录。 默认日志启动器

spring-boot-starter-tomcat

使用 Tomcat 作为嵌入式 servlet 容器。 spring-boot-starter-web 使用的默认 servlet 容器

spring-boot-starter-log4j2

使用 Log4j2 进行日志记录。 spring-boot-starter-logging 的替代方法

原文发布于微信公众号 - Java帮帮(javahelp)

原文发表时间:2018-08-08

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏乐沙弥的世界

Oracle cloud control 12c 如何修改sysman密码

    前阵子在虚拟机部署了Oracle Cloud Control 12c,事别几日,竟然忘记了登陆密码。主要是因为现在的Oracle有关的Software...

801
来自专栏WindCoder

springBoot初探-创建项目

一边学习公司用到的技术,一边重构小程序后端,从而更好的理解公司搭建的框架。此处记录一个用idea+gradle+springboot的基础实现。

671
来自专栏Java大联盟

SpringBoot教程(4):整合MyBatis逆向工程

3672
来自专栏颇忒脱的技术博客

Spring、Spring Boot和TestNG测试指南 - @OverrideAutoConfiguration

在Chapter 1: 基本用法 - 使用Spring Boot Testing工具里提到:

1632
来自专栏Web项目聚集地

从零学习Spring Boot-入门起步

Spring Boot是Spring社区较新的一个项目。该项目的目的是帮助开发者更容易的创建基于Spring的应用程序和服务,让更多人的人更快的对Spring进...

1093
来自专栏琦小虾的Binary

CMake学习笔记(三)——以笔者的Robosub竞赛为例

CMake学习笔记(三)——以笔者的Robosub竞赛为例 继笔者认真学习了CMake语法之后,便开始尝试自己用CMake将以前用Qt写的软件框架程序改编为CM...

34210
来自专栏about云

让你快速认识flume及安装和使用flume1.5传输数据(日志)到hadoop2.2

问题导读: 1.什么是flume? 2.如何安装flume? 3.flume的配置文件与其它软件有什么不同? 一、认识flume 1.flume是什么? ...

38213
来自专栏颇忒脱的技术博客

Spring、Spring Boot和TestNG测试指南 - 使用Spring Boot Testing工具

前面一个部分讲解了如何使用Spring Testing工具来测试Spring项目,现在我们讲解如何使用Spring Boot Testing工具来测试Sprin...

1603
来自专栏JAVA技术站

SpringCloud之熔断监控

四、加入监控地址/hystrix.stream配入,点Monitor Stream

1362
来自专栏阿杜的世界

Spring Cloud学习-Eureka、Ribbon和Feign引子实践源码下载参考资料

看完《微服务设计》后,算是补上了自己在服务化这块的理论知识,在业界,一般有两种微服务的实践方法:基于dubbo的微服务架构、基于Spring Cloud的微服务...

2232

扫码关注云+社区

领取腾讯云代金券