天涯明月刀ol|天涯明月刀迅雷下载
  1. 當前所在位置:
  2. 首頁
  3. 星力捕魚

springBoot學習筆記

2019-01-21 admin
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 主要目標是:
 
l 為所有 Spring 的開發提供一個從根本上更快的入門體驗
 
l 開箱即用,但通過自己設置參數,即可快速擺脫這種方式。
 
l 提供了一些大型項目中常見的非功能性特性,如內嵌服務器、安全、指標,健康檢測、外部化配置等
 
l 絕對沒有代碼生成,也無需 XML 配置。
 
2. Spring Boot 入門
2.1. 環境準備
數據庫:MySQL
 
IDE:Eclipse Mars2
 
Spring-Boot:1.4.4
 
Maven: 3.3.3 (官方聲明1.4.4版本需要Maven 3.2+)
 
本地倉庫:需要使用資料中的倉庫
 
2.2. 起步依賴
2.2.1. 創建一個Maven工程
 
 
2.2.2. 添加依賴
在pom.xml中添加依賴,效果如下
 
<parent>
 
<groupId>org.springframework.boot</groupId>
 
<artifactId>spring-boot-starter-parent</artifactId>
 
<version>1.4.4.RELEASE</version>
 
</parent>
 
<groupId>cn.itcast.springboot</groupId>
 
<artifactId>itcast-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.3. 變更JDK版本
我們發現默認情況下工程的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.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 Boot ::        (v1.4.4.RELEASE)
 
 
 
這個標識是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.5. 入門程序
需求:使用Spring MVC實現Hello World輸出
 
 
 
2.5.1. 原來的實現
我們現在開始使用spring MVC 框架,實現json 數據的輸出。如果按照我們原來的做法,需要在web.xml 中添加一個DispatcherServlet 的配置,還需要添加一個spring的配置文件,配置文件如下配置
 
 
 
spring加入配置
 
<!-- controller注解掃描 -->
 
<context:component-scan base-package="cn.itcast.springboot.controller" />
 
 
 
<!-- 注解驅動 -->
 
<mvc:annotation-driven />
 
 
 
web.xml加入配置
 
<!-- 配置前端控制器 -->
 
<servlet>
 
<servlet-name> itcast-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> itcast-springboot</servlet-name>
 
<url-pattern>/</url-pattern>
 
</servlet-mapping>
 
 
 
還要編寫Controller。。。
 
 
 
2.5.2. Spring-Boot的實現
我們不需要配置文件,直接編寫Controller類即可
 
import org.springframework.web.bind.annotation.RequestMapping;
 
import org.springframework.web.bind.annotation.RestController;
 
 
 
@RestController
 
public class HelloWorldController {
 
 
 
@RequestMapping("info")
 
public String info() {
 
return "Hello world!";
 
}
 
 
 
}
 
 
 
@RestController注解:其實就是@Controller和@ResponseBody注解加在一起
 
 
 
啟動方式一:啟動之前編寫的引導類即可
 
啟動方式二:使用Maven命令spring-boot:run執行即可
 
選擇 Maven Build
 
 
 
 
 
在瀏覽器地址欄輸入http://localhost:8080/info 即可看到運行結果
 
 
 
2.6. 熱部署
我們在開發中反復修改類、頁面等資源,每次修改后都是需要重新啟動才生效,這樣每次啟動都很麻煩,浪費了大量的時間。
 
 
 
能不能在我修改代碼后不重啟就能生效呢?可以,由于Spring Boot應用只是普通的Java應用,所以JVM熱交換(hot-swapping)也能開箱即用。不過JVM熱交換能替換的字節碼有限制,想要更徹底的解決方案可以使用Spring Loaded項目或JRebel。 spring-boot-devtools 模塊也支持應用快速重啟(restart)。
 
 
 
我們只需要在pom.xml加入如下配置即可
 
<dependency>
 
<groupId>org.springframework.boot</groupId>
 
<artifactId>spring-boot-devtools</artifactId>
 
</dependency>
 
 
 
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工程
itcast-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.itcast.info.pojo.User;
 
 
 
public interface UserDao extends JpaRepository<User, Long> {
 
}
 
 
 
3.1.3.3. 創建業務邏輯接口
import java.util.List;
 
import cn.itcast.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.itcast.info.dao.UserDao;
 
import cn.itcast.info.pojo.User;
 
import cn.itcast.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.itcast.info.pojo.User;
 
import cn.itcast.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. 簡單整合
3.2.1.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.1.2. 編寫Mapper
和之前的方式一樣,只是多了兩個注解
 
@Mapper:聲明Mapper接口
 
@Select:聲明這個接口所需要使用的sql,當然,有查詢的注解,肯定就有增刪改的注解。
 
import java.util.List;
 
import org.apache.ibatis.annotations.Mapper;
 
import org.apache.ibatis.annotations.Select;
 
import cn.itcast.info.pojo.User;
 
 
 
@Mapper
 
public interface UserMapper {
 
 
 
@Select("select * from user where name like '%${value}%'")
 
public List<User> queryUserByName(String name);
 
 
 
}
 
 
 
3.2.1.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.1.4. 測試
瀏覽器地址欄輸入:http://127.0.0.1:8080/user/list/張
 
顯示效果:
 
 
 
 
 
3.2.2. 整合通用Mapper和分頁助手
以上所有的配置都是使用的默認配置,我們只需要專注java代碼的開發即可,不需要加入配置文件了。
 
 
 
但并不是所有得場景都是簡單的業務,有時候業務復雜,需要我們加入自定義的配置文件;有時候需要載入例如分頁助手這樣的插件,輔助開發,所以我們也需要了解如何加載這些配置。
 
 
 
3.2.2.1. 加入依賴
我們需要加入通用Mapper和分頁插件,所以需要在pom.xml加入以下依賴
 
<!-- 通用Mapper -->
 
<dependency>
 
<groupId>com.github.abel533</groupId>
 
<artifactId>mapper</artifactId>
 
<version>2.3.4</version>
 
</dependency>
 
<!-- 分頁助手 -->
 
<dependency>
 
<groupId>com.github.pagehelper</groupId>
 
<artifactId>pagehelper</artifactId>
 
<version>3.7.5</version>
 
</dependency>
 
<dependency>
 
<groupId>com.github.jsqlparser</groupId>
 
<artifactId>jsqlparser</artifactId>
 
<version>0.9.1</version>
 
</dependency>
 
 
 
3.2.2.2. 修改配置文件
在application.properties添加配置
 
#spring集成Mybatis環境
 
#pojo別名掃描包
 
mybatis.type-aliases-package=cn.itcast.info.pojo
 
#加載Mybatis核心配置文件
 
mybatis.mapper-locations=classpath:mapper/*Mapper.xml
 
mybatis.config-location=classpath:mybatis/SqlMapConfig.xml
 
#配置連接池,還需要在pom.xml中加入該連接池的依賴
 
#spring.datasource.type=com.jolbox.bonecp.BoneCPDataSource
 
 
 
在src\main\resources\mapper路徑下加入UserMapper.xml配置文件
 
<?xml version="1.0" encoding="UTF-8" ?>
 
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
 
<mapper namespace="cn.itcast.info.dao.UserMapper">
 
<select id="queryAll" resultType="user">
 
select * from user
 
</select>
 
</mapper>
 
 
 
在src\main\resources\mybatis加入SqlMapConfig.xml配置文件,用以加載通用Mapper和分頁助手
 
<?xml version="1.0" encoding="UTF-8" ?>
 
<!DOCTYPE configuration
 
  PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
 
  "http://mybatis.org/dtd/mybatis-3-config.dtd">
 
<configuration>
 
<!-- 分頁助手 -->
 
<plugins>
 
<plugin interceptor="com.github.pagehelper.PageHelper">
 
<property name="dialect" value="mysql" />
 
<!-- 該參數默認為false -->
 
<!-- 設置為true時,使用RowBounds分頁會進行count查詢 -->
 
<property name="rowBoundsWithCount" value="true" />
 
</plugin>
 
 
 
<!-- 通用Mapper -->
 
<plugin interceptor="com.github.abel533.mapperhelper.MapperInterceptor">
 
<!--主鍵自增回寫方法,默認值MYSQL,詳細說明請看文檔 -->
 
<property name="IDENTITY" value="MYSQL" />
 
<!--通用Mapper接口,多個通用接口用逗號隔開 -->
 
<property name="mappers" value="com.github.abel533.mapper.Mapper" />
 
</plugin>
 
</plugins>
 
</configuration>
 
 
 
 
 
3.2.2.3. 編寫Mapper
import java.util.List;
 
import org.apache.ibatis.annotations.Mapper;
 
import org.apache.ibatis.annotations.Select;
 
import cn.itcast.info.pojo.User;
 
 
 
//extends com.github.abel533.mapper.Mapper<User>:需要繼承通用Mapper
 
@Mapper
 
public interface UserMapper extends com.github.abel533.mapper.Mapper<User> {
 
 
 
@Select("select * from user where name like '%${value}%'")
 
public List<User> queryUserByName(String name);
 
 
 
// 使用UserMapper.xml配置文件
 
public List<User> queryAll();
 
}
 
 
 
3.2.2.4. 編寫Service和Controller
Service編寫
 
import java.util.List;
 
import org.springframework.beans.factory.annotation.Autowired;
 
import org.springframework.stereotype.Service;
 
import com.github.pagehelper.PageHelper;
 
import cn.itcast.info.dao.UserDao;
 
import cn.itcast.info.dao.UserMapper;
 
import cn.itcast.info.pojo.User;
 
import cn.itcast.info.service.UserService;
 
 
 
@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;
 
}
 
 
 
// 調用使用UserMapper.xml的Mapper
 
@Override
 
public List<User> queryAll() {
 
List<User> list = this.userMapper.queryAll();
 
return list;
 
}
 
 
 
// 使用通用Mapper和分頁助手
 
@Override
 
public List<User> queryUserByPage(Integer page, Integer rows) {
 
// 設置分頁
 
PageHelper.startPage(page, rows);
 
// 使用通用Mapper的方法進行查詢所有數據
 
List<User> list = this.userMapper.select(null);
 
return list;
 
}
 
}
 
 
 
Controller編寫
 
import java.util.List;
 
import org.springframework.beans.factory.annotation.Autowired;
 
import org.springframework.web.bind.annotation.PathVariable;
 
import org.springframework.web.bind.annotation.RequestMapping;
 
import org.springframework.web.bind.annotation.RestController;
 
import cn.itcast.info.pojo.User;
 
import cn.itcast.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;
 
}
 
 
 
@RequestMapping("list/{name}")
 
public List<User> queryUserAll(@PathVariable String name) {
 
List<User> list = this.userService.queryUserByName(name);
 
return list;
 
}
 
 
 
@RequestMapping("list/query")
 
public List<User> queryUserAll2() {
 
List<User> list = this.userService.queryAll();
 
return list;
 
}
 
 
 
@RequestMapping("list/{page}/{rows}")
 
public List<User> queryUserAll(@PathVariable Integer page, @PathVariable Integer rows) {
 
List<User> list = this.userService.queryUserByPage(page, rows);
 
return list;
 
}
 
 
 
}
 
 
 
3.2.2.5. 測試
測試使用UserMapper.xml
 
瀏覽器地址欄輸入:http://127.0.0.1:8080/user/list/query
 
 
 
 
 
測試使用通用Mapper和分頁助手
 
瀏覽器地址欄輸入:http://127.0.0.1:8080/user/list/2/2
 
 
 
 
 
3.3. 整合Redis
3.3.1. 注解方式實現添加緩存
需求:基于上例代碼,將列表數據緩存到Redis
 
3.3.1.1. 加入依賴
在pom.xml加入依賴
 
<!-- 配置使用redis啟動器 -->
 
<dependency>
 
<groupId>org.springframework.boot</groupId>
 
<artifactId>spring-boot-starter-redis</artifactId>
 
</dependency>
 
 
 
3.3.1.2. 修改引導類
修改開啟緩存,添加注解@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.1.3. 設置實現序列化接口
需要修改實體,讓實體實現序列化接口
 
@Entity
 
public class User implements Serializable {
 
@Id
 
private Long id;
 
private String userName;
 
private String password;
 
private String name;
 
 
 
。。。。。。
 
}
 
 
 
3.3.1.4. 實現添加/刪除緩存
修改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", key = "'user.findAll'")
 
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,我們這里可以隨意指定,但是需要注意一定要加單引號
 
 
 
3.3.2. redis的深入使用
3.3.2.1. 直接操作redis
redis除了作為緩存使用,還有很多其他的作用,例如利用redis的單線程獲取唯一數,例如使用redis為單點登錄系統存儲用戶登錄信息等,我們就需要直接操作redis。
 
 
 
官網提供了三種接口RedisConnectionFactory, StringRedisTemplate 和 RedisTemplate,我們可以直接注入或者自己實現其他的實現類,來直接操作redis。我們這里使用RedisTemplate來操作Redis。
 
 
 
如下所示,我們只需要直接注入RedisTemplate即可使用以下方法操作redis的五種不同的數據類型
 
 
 
 
 
 
 
測試:
 
@Autowired
 
private RedisTemplate<String, String> redisTemplate;
 
 
 
@Override
 
@CacheEvict(value = "userCache", key = "'user.findAll'")
 
public List<User> queryUserByName(String name) {
 
// 保存數據
 
this.redisTemplate.boundValueOps("redis").set("Hello redis !");
 
// 設置有效時間為100秒
 
this.redisTemplate.boundValueOps("redis").expire(100l, TimeUnit.SECONDS);
 
// 給value每次執行加一操作
 
this.redisTemplate.boundValueOps("count").increment(1l);
 
 
 
System.out.println("緩存清理了!");
 
List<User> list = this.userMapper.queryUserByName(name);
 
return list;
 
}
 
 
 
3.3.2.2. 設置redis連接屬性
redis單機版
 
redis啟動器默認情況下會找本地的redis服務,端口號默認是6379如果需要訪問其他服務器的redis,則需要在application.properties中進行如下配置:
 
#Redis
 
spring.redis.host=192.168.37.161
 
spring.redis.port=6379
 
這表示會去找ip為192.168.37.161和端口為6379的服務
 
 
 
redis集群版
 
#Redis
 
#spring.redis.host=192.168.37.161
 
#spring.redis.port=6379
 
 
 
#Redis Cluster
 
spring.redis.cluster.nodes=192.168.37.161:7001,192.168.37.161:7002,192.168.37.161:7003,192.168.37.161:7004,192.168.37.161:7005,192.168.37.161:7006
 
切換到集群版只需要做以上配置,配置集群版節點信息,注釋掉單機版信息
 
 
 
3.4. 整合ActiveMQ
3.4.1. 加入依賴
在pom.xml中加入以下配置
 
<!-- 配置ActiveMQ啟動器 -->
 
<dependency>
 
<groupId>org.springframework.boot</groupId>
 
<artifactId>spring-boot-starter-activemq</artifactId>
 
</dependency>
 
 
 
3.4.2. 創建隊列
在引導類中添加以下方法,設置隊列
 
@SpringBootApplication
 
@EnableCaching
 
public class Application {
 
public static void main(String[] args) {
 
SpringApplication.run(Application.class, args);
 
}
 
 
 
@Bean
 
public Queue queue() {
 
return new ActiveMQQueue("itcast.queue");
 
}
 
 
 
}
 
 
 
3.4.3. 發送消息
編寫Controller,發送消息
 
import javax.jms.Destination;
 
import org.springframework.beans.factory.annotation.Autowired;
 
import org.springframework.jms.core.JmsTemplate;
 
import org.springframework.web.bind.annotation.PathVariable;
 
import org.springframework.web.bind.annotation.RequestMapping;
 
import org.springframework.web.bind.annotation.RestController;
 
 
 
@RestController
 
@RequestMapping("queue")
 
public class QueueController {
 
 
 
//注入發送消息的對象
 
@Autowired
 
private JmsTemplate jmsTemplate;
 
 
 
//注入消息隊列
 
@Autowired
 
private Destination destination;
 
 
 
//編寫發送消息的方法
 
@RequestMapping("send/{message}")
 
public String send(@PathVariable String message) {
 
this.jmsTemplate.convertAndSend(destination, message);
 
return "消息發送成功!消息內容:" + message;
 
}
 
 
 
}
 
 
 
3.4.4. 接收消息
編寫bean,加入@Component注解讓spring管理這個bean,作為接收消息的消費者
 
import org.springframework.jms.annotation.JmsListener;
 
import org.springframework.stereotype.Component;
 
 
 
@Component
 
public class Consumer {
 
 
 
// 接受消息方法
 
@JmsListener(destination = "itcast.queue")
 
public void readMessage(String text) {
 
System.out.println("接受到的消息是:" + text);
 
}
 
}
 
 
 
測試:
 
啟動服務后,在瀏覽器執行http://127.0.0.1:8080/queue/send/發消息了11
 
 
 
即可看到消息發送成功
 
同時可以在控制臺看到打印信息
 
 
 
 
 
我們沒有安裝ActiveMQ,為什么可以使用?因為Spring Boot 內置了ActiveMQ 的服務,所以我們不用單獨啟動也可以實現消息的發送和接收。
 
 
 
3.4.5. 使用外部服務
首先確認有一臺外部ActiveMQ服務可以使用
 
 
 
 
 
在application.properties中加入以下配置
 
#ActiveMQ
 
spring.activemq.broker-url=tcp://192.168.37.161:61616
 
 
 
這樣就加入了ActiveMQ服務的地址
 
 
 
3.5. 整合junit
3.5.1. 加入依賴
在pom.xml中加入測試依賴
 
<!-- 配置測試啟動器 -->
 
<dependency>
 
<groupId>org.springframework.boot</groupId>
 
<artifactId>spring-boot-starter-test</artifactId>
 
<scope>test</scope>
 
</dependency>
 
 
 
3.5.2. 編寫測試類
import javax.jms.Destination;
 
import org.junit.Test;
 
import org.junit.runner.RunWith;
 
import org.springframework.beans.factory.annotation.Autowired;
 
import org.springframework.boot.test.context.SpringBootTest;
 
import org.springframework.jms.core.JmsTemplate;
 
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
 
 
 
import cn.itcast.info.Application;
 
 
 
@RunWith(SpringJUnit4ClassRunner.class)
 
@SpringBootTest(classes = Application.class)
 
public class MessageTest {
 
 
 
@Autowired
 
private Destination destination;
 
 
 
@Autowired
 
private JmsTemplate jmsTemplate;
 
 
 
@Test
 
public void test() {
 
System.out.println("我發消息了!");
 
this.jmsTemplate.convertAndSend(destination, "Hello ActiveMQ!");
 
}
 
 
 
}
 
SpringRunner 與SpringJUnit4ClassRunner 是繼承關系,但是沒有不同的地方,只是看起來子類SpringRunner要短一些而已。
 
 
 
@SpringBootTest 注解的class 屬性要指定引導類的class
 
 
 
3.6. 整合dubbox
3.6.1. 環境準備
3.6.1.1. dubbox
dubbo是一個分布式的服務架構,可直接用于生產環境作為SOA服務框架。官網首頁:http://dubbo.io/  
 
 
 
淘寶將這個項目開源出來以后,得到了不少同行的支持,包括:
 
當當網的擴展版本dubbox :https://github.com/dangdangdotcom/dubbox
 
京東的擴展版本jd-hydra: http://www.oschina.NET/p/jd-hydra
 
 
 
不過,略有遺憾的是, dubbo由于某些原因導致dubbo團隊已經解散,已經很牛沒有更新了,反到是當當網的擴展版本仍在持續發展。因為dubbox支持更新的spring版本,所以我們使用dubbox。
 
 
 
Dubbox在maven中央倉庫并沒有對應的依賴,所以我們需要自己動手將其發布到我們的本地倉庫來使用。
 
 
 
使用git從碼云上把dubbox的代碼clone下來,
 
地址:https://git.oschina.net/wuyu15255872976/dubbox.git
 
 
 
執行Maven命令把工程安裝到本地倉庫
 
命令:clean install -Dmaven.test.skip
 
 
 
課程資料提供的倉庫已經安裝好了,可以直接使用
 
 
 
3.6.1.2. spring-boot-starter-dubbo
我們以前在使用dubbo的時候都是用的xml配置。而在整合Spring Boot的時候可以使用@ImportResource注解來引入的dubbo的xml配置。
 
但是Spring Boot本身并不推薦xml配置。怎么解決這個矛盾,我們可以自己準備一個Spring Boot Starter dubbo的項目來引導Spring Boot對Dubbo的自動化配置。已經有人開發好了這個自動化配置項目,我們直接使用就行了
 
 
 
使用git從碼云上把spring-boot-starter-dubbo的代碼clone下來,
 
地址:https://git.oschina.net/wuyu15255872976/spring-boot-starter-dubbo.git
 
 
 
執行Maven命令把工程安裝到本地倉庫
 
命令:clean install -Dmaven.test.skip
 
 
 
為了統一管理,把pom.xml修改為如下:
 
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
 
<modelVersion>4.0.0</modelVersion>
 
<parent>
 
<groupId>org.springframework.boot</groupId>
 
<artifactId>spring-boot-starter-parent</artifactId>
 
<version>1.4.4.RELEASE</version>
 
</parent>
 
<artifactId>spring-boot-starter-dubbo</artifactId>
 
<version>1.4.4.RELEASE</version>
 
<name>Spring Boot Dubbo Rpc</name>
 
<description>Spring Boot Dubbo Rpc</description>
 
<url>http://projects.spring.io/spring-boot/</url>
 
<organization>
 
<name>Pivotal Software, Inc.</name>
 
<url>http://www.spring.io</url>
 
</organization>
 
<properties>
 
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
 
<java.version>1.7</java.version>
 
</properties>
 
 
 
    <dependencies>
 
<dependency>
 
<groupId>org.springframework.boot</groupId>
 
<artifactId>spring-boot-actuator</artifactId>
 
</dependency>
 
<dependency>
 
<groupId>org.springframework.boot</groupId>
 
<artifactId>spring-boot-configuration-processor</artifactId>
 
</dependency>
 
<dependency>
 
<groupId>com.alibaba</groupId>
 
<artifactId>dubbo</artifactId>
 
<version>2.8.5-SNAPSHOT</version>
 
<exclusions>
 
<exclusion>
 
<artifactId>spring</artifactId>
 
<groupId>org.springframework</groupId>
 
</exclusion>
 
</exclusions>
 
</dependency>
 
<!-- zookeeper 客戶端 -->
 
<dependency>
 
<groupId>com.github.sgroschupf</groupId>
 
<artifactId>zkclient</artifactId>
 
<version>0.1</version>
 
</dependency>
 
</dependencies>
 
<dependencyManagement>
 
<dependencies>
 
<dependency>
 
<groupId>org.springframework.boot</groupId>
 
<artifactId>spring-boot-dependencies</artifactId>
 
<version>1.4.4.RELEASE</version>
 
<type>pom</type>
 
<scope>import</scope>
 
</dependency>
 
</dependencies>
 
</dependencyManagement>
 
 
 
<build>
 
<plugins>
 
<plugin>
 
<artifactId>maven-source-plugin</artifactId>
 
<configuration>
 
<attach>true</attach>
 
</configuration>
 
<executions>
 
<execution>
 
<phase>compile</phase>
 
<goals>
 
<goal>jar</goal>
 
</goals>
 
</execution>
 
</executions>
 
</plugin>
 
</plugins>
 
</build>
 
</project>
 
 
 
課程資料提供的倉庫已經安裝好了,可以直接使用
 
 
 
3.6.1.3. zookeeper注冊中心
我們使用zookeeper作為dubbo的注冊中心。
 
這里使用的zookeeper注冊中心地址是:192.168.37.161:2181
 
修改hosts,配置注冊中心的域名是zookeeper.taotao.com
 
 
 
3.6.2. 搭建項目
taotao-parent作為所有工程的父工程
 
taotao- interface作為提供pojo和抽取服務接口的
 
taotao-provider作為服務提供者
 
taotao-consumer作為服務消費者
 
 
 
3.6.2.1. 搭建taotao-parent
創建taotao-parent,并打pom包,這里配置公共使用的依賴。
 
修改pom.xml為如下
 
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
 
<modelVersion>4.0.0</modelVersion>
 
<parent>
 
<groupId>org.springframework.boot</groupId>
 
<artifactId>spring-boot-starter-parent</artifactId>
 
<version>1.4.4.RELEASE</version>
 
</parent>
 
<groupId>com.taotao</groupId>
 
<artifactId>taotao-parent</artifactId>
 
<version>0.0.1-SNAPSHOT</version>
 
<packaging>pom</packaging>
 
 
 
<properties>
 
<!-- 配置java版本 -->
 
<java.version>1.7</java.version>
 
</properties>
 
 
 
<dependencies>
 
<!-- 配置測試啟動器 -->
 
<dependency>
 
<groupId>org.springframework.boot</groupId>
 
<artifactId>spring-boot-starter-test</artifactId>
 
<scope>test</scope>
 
</dependency>
 
 
 
<!-- 配置web啟動器 -->
 
<dependency>
 
<groupId>org.springframework.boot</groupId>
 
<artifactId>spring-boot-starter-web</artifactId>
 
<optional>true</optional>
 
</dependency>
 
 
 
<!-- 配置dubbo啟動器 -->
 
<dependency>
 
<groupId>org.springframework.boot</groupId>
 
<artifactId>spring-boot-starter-dubbo</artifactId>
 
<version>1.4.4.RELEASE</version>
 
<optional>true</optional>
 
</dependency>
 
</dependencies>
 
</project>
 
 
 
3.6.2.2. 搭建taotao-interface
創建taotao-interface,并打jar包。
 
修改pom.xml為如下,幾乎不用配置
 
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
 
<modelVersion>4.0.0</modelVersion>
 
<parent>
 
<groupId>com.taotao</groupId>
 
<artifactId>taotao-parent</artifactId>
 
<version>0.0.1-SNAPSHOT</version>
 
</parent>
 
<groupId>com.taotao</groupId>
 
<artifactId>taotao-interface</artifactId>
 
<version>0.0.1-SNAPSHOT</version>
 
</project>
 
 
 
3.6.2.3. 搭建taotao-provider
創建taotao-provider,并打jar包。
 
修改pom.xml為如下
 
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
 
<modelVersion>4.0.0</modelVersion>
 
<parent>
 
<groupId>com.taotao</groupId>
 
<artifactId>taotao-parent</artifactId>
 
<version>0.0.1-SNAPSHOT</version>
 
</parent>
 
<groupId>com.taotao</groupId>
 
<artifactId>taotao-provider</artifactId>
 
<version>0.0.1-SNAPSHOT</version>
 
 
 
<dependencies>
 
<!-- 加入taotao-interface依賴 -->
 
<dependency>
 
<groupId>com.taotao</groupId>
 
<artifactId>taotao-interface</artifactId>
 
<version>0.0.1-SNAPSHOT</version>
 
</dependency>
 
 
 
<!-- 配置MyBatis啟動器 -->
 
<dependency>
 
<groupId>org.mybatis.spring.boot</groupId>
 
<artifactId>mybatis-spring-boot-starter</artifactId>
 
<version>1.1.1</version>
 
</dependency>
 
 
 
<!-- MySQL連接驅動 -->
 
<dependency>
 
<groupId>mysql</groupId>
 
<artifactId>mysql-connector-java</artifactId>
 
</dependency>
 
</dependencies>
 
</project>
 
 
 
3.6.2.4. 搭建taotao-consumer
創建taotao-consumer,并打jar包。
 
修改pom.xml為如下
 
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
 
<modelVersion>4.0.0</modelVersion>
 
<parent>
 
<groupId>com.taotao</groupId>
 
<artifactId>taotao-parent</artifactId>
 
<version>0.0.1-SNAPSHOT</version>
 
</parent>
 
<groupId>com.taotao</groupId>
 
<artifactId>taotao-consumer</artifactId>
 
<version>0.0.1-SNAPSHOT</version>
 
<dependencies>
 
<!-- 加入taotao-interface依賴 -->
 
<dependency>
 
<groupId>com.taotao</groupId>
 
<artifactId>taotao-interface</artifactId>
 
<version>0.0.1-SNAPSHOT</version>
 
</dependency>
 
</dependencies>
 
</project>
 
 
 
3.7. 實現功能
3.7.1. 實現taotao-interface
編寫pojo
 
import java.io.Serializable;
 
 
 
public class User implements Serializable {
 
private Long id;
 
private String userName;
 
private String password;
 
private String name;
 
get/set方法
 
}
 
 
 
編寫Service接口
 
import com.taotao.common.pojo.User;
 
 
 
public interface UserService {
 
 
 
public User queryUserById(Long id);
 
}
 
 
 
3.7.2. 實現taotao-provider
編寫UserMapper
 
import org.apache.ibatis.annotations.Mapper;
 
import org.apache.ibatis.annotations.Select;
 
import com.taotao.common.pojo.User;
 
 
 
@Mapper
 
public interface UserMapper {
 
 
 
@Select("select * from user where id=#{id}")
 
public User queryUserById(Long id);
 
 
 
}
 
 
 
編寫UserServiceImpl實現類
 
import org.springframework.beans.factory.annotation.Autowired;
 
import com.alibaba.dubbo.config.annotation.Service;
 
import com.taotao.common.consumer.UserService;
 
import com.taotao.common.pojo.User;
 
import com.taotao.mapper.UserMapper;
 
 
 
@Service
 
public class UserServiceImpl implements UserService {
 
 
 
@Autowired
 
private UserMapper userMapper;
 
 
 
@Override
 
public User queryUserById(Long id) {
 
User user = this.userMapper.queryUserById(id);
 
return user;
 
}
 
}
 
 
 
編寫引導類
 
import org.springframework.boot.SpringApplication;
 
import org.springframework.boot.autoconfigure.SpringBootApplication;
 
import com.alibaba.boot.dubbo.EnableDubboAutoConfiguration;
 
 
 
@SpringBootApplication
 
@EnableDubboAutoConfiguration
 
public class ProviderApplication {
 
public static void main(String[] args) {
 
SpringApplication.run(ProviderApplication.class, args);
 
}
 
}
 
 
 
在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
 
 
 
#配置服務器訪問端口號
 
server.port=8081
 
 
 
#配置dubbo信息
 
#配置服務名稱
 
spring.dubbo.application.name=taotao-provider
 
#注冊中心類型
 
spring.dubbo.registry.protocol=zookeeper
 
#注冊中心連接方式
 
spring.dubbo.registry.address=manager.taotao.com:2181
 
#配置服務調用所使用的協議
 
spring.dubbo.protocol.name=dubbo
 
#配置服務端口號
 
spring.dubbo.protocol.port=20880
 
#配置服務訪問地址
 
spring.dubbo.protocol.host=localhost
 
#配置dubbo掃描
 
spring.dubbo.scan=com.taotao.provider
 
 
 
 
 
3.7.3. 實現taotao-consumer
編寫Controller
 
import org.springframework.web.bind.annotation.PathVariable;
 
import org.springframework.web.bind.annotation.RequestMapping;
 
import org.springframework.web.bind.annotation.RestController;
 
import com.alibaba.dubbo.config.annotation.Reference;
 
import com.taotao.common.consumer.UserService;
 
import com.taotao.common.pojo.User;
 
 
 
@RestController
 
@RequestMapping("user")
 
public class UserController {
 
 
 
@Reference
 
private UserService userService;
 
 
 
@RequestMapping("{id}")
 
public User queryUserById(@PathVariable Long id) {
 
User user = this.userService.queryUserById(id);
 
return user;
 
}
 
}
 
 
 
編寫引導類
 
import org.springframework.boot.SpringApplication;
 
import org.springframework.boot.autoconfigure.SpringBootApplication;
 
import com.alibaba.boot.dubbo.EnableDubboAutoConfiguration;
 
 
 
@SpringBootApplication
 
@EnableDubboAutoConfiguration
 
public class ConsumerApplication {
 
public static void main(String[] args) {
 
SpringApplication.run(ConsumerApplication.class, args);
 
}
 
}
 
 
 
在src/main/resources加入配置文件application.properties
 
#配置服務器訪問端口號
 
server.port=8080
 
 
 
#配置dubbo信息
 
#配置服務名稱
 
spring.dubbo.application.name=taotao-consumer
 
#注冊中心類型
 
spring.dubbo.registry.protocol=zookeeper
 
#注冊中心連接方式
 
spring.dubbo.registry.address=manager.taotao.com:2181
 
#配置服務調用所使用的協議
 
spring.dubbo.protocol.name=dubbo
 
#配置服務端口號
 
spring.dubbo.protocol.port=20880
 
#配置服務訪問地址
 
spring.dubbo.protocol.host=localhost
 
#配置dubbo掃描
 
spring.dubbo.scan=com.taotao.consumer
 
 
 
4. Spring Boot深入學習
4.1. 讀取配置文件
4.1.1. .讀取核心配置文件
在工程的src/main/resources 下修改核心配置文件
 
application.properties, 添加內容如下
 
name=傳智播客
 
url=http://www.itcast.cn
 
 
 
在Controller中添加:
 
@Resource
 
private Environment env;
 
 
 
@RequestMapping("list")
 
public List<User> queryUserAll() {
 
System.out.println(env.getProperty("name"));
 
System.out.println(env.getProperty("url"));
 
List<User> list = this.userService.findAll();
 
return list;
 
}
 
 
 
就可以直接把配置文件信息打印出來。
 
注意包名是:org.springframework.core.env.Environment
 
 
 
 
 
4.1.2. 讀取自定義文件
在工程的src/main/resources 下構建自定義配置文件mail.properties, 內容如下
 
mail.host=smtp.sina.com
 
mail.port=25
 
mail.username=itcast
 
mail.password=heima
 
 
 
編寫JavaBean
 
import org.springframework.boot.context.properties.ConfigurationProperties;
 
import org.springframework.context.annotation.Configuration;
 
 
 
@Configuration
 
@ConfigurationProperties(locations = "classpath:mail.properties", prefix = "mail")
 
public class MailProperties {
 
private String host;
 
private Integer port;
 
private String username; 
 
private String password;
 
 
 
set/get
 
}
 
 
 
改造Controller
 
@Autowired
 
private MailProperties mailProperties;
 
 
 
@RequestMapping("/mailInfo")
 
public String mailInfo() {
 
return mailProperties.getHost() + "<br>" + mailProperties.getPort() + "<br>" + mailProperties.getUsername()
 
+ "<br>" + mailProperties.getPassword();
 
}
 
 
 
打印效果
 
 
 
 
 
4.2. 打jar包
在工程的pom.xml中添加以下依賴
 
<build>
 
<plugins>
 
<plugin>
 
<groupId>org.springframework.boot</groupId>
 
<artifactId>spring-boot-maven-plugin</artifactId>
 
</plugin>
 
</plugins>
 
</build>
 
 
 
我們目前的工程采用的是jar 的打包方式,所以我們在執行package 命令后,
 
會產生一個jar 包。
 
我們進入到這個目錄用壓縮軟件打開此jar 包,其中我們發現了一個叫lib 的文件夾,打開lib 文件夾發現此文件夾下全是工程依賴的jar包,甚至還有tomcat。這種包含有jar 包的jar包,我們稱之為fatJAR( 胖jar 包)
 
 
 
 
 
由于fatJAR 本身就包括tomcat , 我們就不需要另外部署了,直接在命令行就可以把我們的應用啟動起來,在命令行,進入到jar 包所在的目錄,我們可以通過以下java –jar命令來執行此jar 包。
 
 
 
在控制臺會出現啟動信息,在瀏覽器訪問程序
 
 
 
4.3. 打war包
spring-boot 默認提供內嵌的tomcat,所以打包直接生成jar 包,用java
 
-jar 命令就可以啟動。但是,有時候我們更希望一個tomcat 來管理多個項目,
 
這種情況下就需要項目是war 格式的包而不是jar 格式的包。
 
我們按照以下步驟完成對工程的改造
 
(1)修改pom.xml
 
將打包方式修改為war
 
<packaging>war</packaging>
 
 
 
添加依賴
 
<dependency>
 
<groupId>org.springframework.boot</groupId>
 
<artifactId>spring-boot-starter-tomcat</artifactId>
 
<scope>provided</scope>
 
</dependency>
 
 
 
spring-boot-starter-tomcat 是原來被傳遞過來的依賴,默認會打到包里,所
 
以我們再次引入此依賴,并指定依賴范圍為provided,這樣tomcat 相關的jar
 
就不會打包到war 里了.
 
 
 
(2)添加ServletInitializer
 
import org.springframework.boot.builder.SpringApplicationBuilder;
 
import
 
org.springframework.boot.context.web.SpringBootServletInitializer;
 
public class ServletInitializer extends SpringBootServletInitializer {
 
@Override
 
protected SpringApplicationBuilder configure(SpringApplicationBuilder
 
application) {
 
return application.sources(Application.class);
 
}
 
}
 
由于我們采用web3.0 規范,是沒有web.xml 的,而此類的作用與web.xml
 
相同。
 
(3)運行package 打包命令生成war 包
 
生成后將war 包放入tomcat,啟動tomcat,測試完成的功能是否可以使用。
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
附錄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的替代方法
 
 
 
附錄2. Spring-boot的application.properties 
(摘自Spring-boot 1.4.4官方文檔)
 
# ===================================================================
 
# COMMON SPRING BOOT PROPERTIES
 
#
 
# This sample file is provided as a guideline. Do NOT copy it in its
 
# entirety to your own application.               ^^^
 
# ===================================================================
 
 
 
 
 
# ----------------------------------------
 
# CORE PROPERTIES
 
# ----------------------------------------
 
 
 
# BANNER
 
banner.charset=UTF-8 # Banner file encoding.
 
banner.location=classpath:banner.txt # Banner file location.
 
banner.image.location=classpath:banner.gif # Banner image file location (jpg/png can also be used).
 
banner.image.width= # Width of the banner image in chars (default 76)
 
banner.image.height= # Height of the banner image in chars (default based on image height)
 
banner.image.margin= # Left hand image margin in chars (default 2)
 
banner.image.invert= # If images should be inverted for dark terminal themes (default false)
 
 
 
# LOGGING
 
logging.config= # Location of the logging configuration file. For instance `classpath:logback.xml` for Logback
 
logging.exception-conversion-word=%wEx # Conversion word used when logging exceptions.
 
logging.file= # Log file name. For instance `myapp.log`
 
logging.level.*= # Log levels severity mapping. For instance `logging.level.org.springframework=DEBUG`
 
logging.path= # Location of the log file. For instance `/var/log`
 
logging.pattern.console= # Appender pattern for output to the console. Only supported with the default logback setup.
 
logging.pattern.file= # Appender pattern for output to the file. Only supported with the default logback setup.
 
logging.pattern.level= # Appender pattern for log level (default %5p). Only supported with the default logback setup.
 
logging.register-shutdown-hook=false # Register a shutdown hook for the logging system when it is initialized.
 
 
 
# AOP
 
spring.aop.auto=true # Add @EnableAspectJAutoProxy.
 
spring.aop.proxy-target-class=false # Whether subclass-based (CGLIB) proxies are to be created (true) as opposed to standard Java interface-based proxies (false).
 
 
 
# IDENTITY (ContextIdApplicationContextInitializer)
 
spring.application.index= # Application index.
 
spring.application.name= # Application name.
 
 
 
# ADMIN (SpringApplicationAdminJmxAutoConfiguration)
 
spring.application.admin.enabled=false # Enable admin features for the application.
 
spring.application.admin.jmx-name=org.springframework.boot:type=Admin,name=SpringApplication # JMX name of the application admin MBean.
 
 
 
# AUTO-CONFIGURATION
 
spring.autoconfigure.exclude= # Auto-configuration classes to exclude.
 
 
 
# SPRING CORE
 
spring.beaninfo.ignore=true # Skip search of BeanInfo classes.
 
 
 
# SPRING CACHE (CacheProperties)
 
spring.cache.cache-names= # Comma-separated list of cache names to create if supported by the underlying cache manager.
 
spring.cache.caffeine.spec= # The spec to use to create caches. Check CaffeineSpec for more details on the spec format.
 
spring.cache.couchbase.expiration=0 # Entry expiration in milliseconds. By default the entries never expire.
 
spring.cache.ehcache.config= # The location of the configuration file to use to initialize EhCache.
 
spring.cache.guava.spec= # The spec to use to create caches. Check CacheBuilderSpec for more details on the spec format.
 
spring.cache.hazelcast.config= # The location of the configuration file to use to initialize Hazelcast.
 
spring.cache.infinispan.config= # The location of the configuration file to use to initialize Infinispan.
 
spring.cache.jcache.config= # The location of the configuration file to use to initialize the cache manager.
 
spring.cache.jcache.provider= # Fully qualified name of the CachingProvider implementation to use to retrieve the JSR-107 compliant cache manager. Only needed if more than one JSR-107 implementation is available on the classpath.
 
spring.cache.type= # Cache type, auto-detected according to the environment by default.
 
 
 
# SPRING CONFIG - using environment property only (ConfigFileApplicationListener)
 
spring.config.location= # Config file locations.
 
spring.config.name=application # Config file name.
 
 
 
# HAZELCAST (HazelcastProperties)
 
spring.hazelcast.config= # The location of the configuration file to use to initialize Hazelcast.
 
 
 
# PROJECT INFORMATION (ProjectInfoProperties)
 
spring.info.build.location=classpath:META-INF/build-info.properties # Location of the generated build-info.properties file.
 
spring.info.git.location=classpath:git.properties # Location of the generated git.properties file.
 
 
 
# JMX
 
spring.jmx.default-domain= # JMX domain name.
 
spring.jmx.enabled=true # Expose management beans to the JMX domain.
 
spring.jmx.server=mbeanServer # MBeanServer bean name.
 
 
 
# Email (MailProperties)
 
spring.mail.default-encoding=UTF-8 # Default MimeMessage encoding.
 
spring.mail.host= # SMTP server host. For instance `smtp.example.com`
 
spring.mail.jndi-name= # Session JNDI name. When set, takes precedence to others mail settings.
 
spring.mail.password= # Login password of the SMTP server.
 
spring.mail.port= # SMTP server port.
 
spring.mail.properties.*= # Additional JavaMail session properties.
 
spring.mail.protocol=smtp # Protocol used by the SMTP server.
 
spring.mail.test-connection=false # Test that the mail server is available on startup.
 
spring.mail.username= # Login user of the SMTP server.
 
 
 
# APPLICATION SETTINGS (SpringApplication)
 
spring.main.banner-mode=console # Mode used to display the banner when the application runs.
 
spring.main.sources= # Sources (class name, package name or XML resource location) to include in the ApplicationContext.
 
spring.main.web-environment= # Run the application in a web environment (auto-detected by default).
 
 
 
# FILE ENCODING (FileEncodingApplicationListener)
 
spring.mandatory-file-encoding= # Expected character encoding the application must use.
 
 
 
# INTERNATIONALIZATION (MessageSourceAutoConfiguration)
 
spring.messages.always-use-message-format=false # Set whether to always apply the MessageFormat rules, parsing even messages without arguments.
 
spring.messages.basename=messages # Comma-separated list of basenames, each following the ResourceBundle convention.
 
spring.messages.cache-seconds=-1 # Loaded resource bundle files cache expiration, in seconds. When set to -1, bundles are cached forever.
 
spring.messages.encoding=UTF-8 # Message bundles encoding.
 
spring.messages.fallback-to-system-locale=true # Set whether to fall back to the system Locale if no files for a specific Locale have been found.
 
 
 
# OUTPUT
 
spring.output.ansi.enabled=detect # Configure the ANSI output.
 
 
 
# PID FILE (ApplicationPidFileWriter)
 
spring.pid.fail-on-write-error= # Fail if ApplicationPidFileWriter is used but it cannot write the PID file.
 
spring.pid.file= # Location of the PID file to write (if ApplicationPidFileWriter is used).
 
 
 
# PROFILES
 
spring.profiles.active= # Comma-separated list of active profiles.
 
spring.profiles.include= # Unconditionally activate the specified comma separated profiles.
 
 
 
# SENDGRID (SendGridAutoConfiguration)
 
spring.sendgrid.api-key= # SendGrid api key (alternative to username/password)
 
spring.sendgrid.username= # SendGrid account username
 
spring.sendgrid.password= # SendGrid account password
 
spring.sendgrid.proxy.host= # SendGrid proxy host
 
spring.sendgrid.proxy.port= # SendGrid proxy port
 
 
 
 
 
# ----------------------------------------
 
# WEB PROPERTIES
 
# ----------------------------------------
 
 
 
# EMBEDDED SERVER CONFIGURATION (ServerProperties)
 
server.address= # Network address to which the server should bind to.
 
server.compression.enabled=false # If response compression is enabled.
 
server.compression.excluded-user-agents= # List of user-agents to exclude from compression.
 
server.compression.mime-types= # Comma-separated list of MIME types that should be compressed. For instance `text/html,text/css,application/json`
 
server.compression.min-response-size= # Minimum response size that is required for compression to be performed. For instance 2048
 
server.connection-timeout= # Time in milliseconds that connectors will wait for another HTTP request before closing the connection. When not set, the connector's container-specific default will be used. Use a value of -1 to indicate no (i.e. infinite) timeout.
 
server.context-parameters.*= # Servlet context init parameters. For instance `server.context-parameters.a=alpha`
 
server.context-path= # Context path of the application.
 
server.display-name=application # Display name of the application.
 
server.max-http-header-size=0 # Maximum size in bytes of the HTTP message header.
 
server.max-http-post-size=0 # Maximum size in bytes of the HTTP post content.
 
server.error.include-stacktrace=never # When to include a "stacktrace" attribute.
 
server.error.path=/error # Path of the error controller.
 
server.error.whitelabel.enabled=true # Enable the default error page displayed in browsers in case of a server error.
 
server.jetty.acceptors= # Number of acceptor threads to use.
 
server.jetty.selectors= # Number of selector threads to use.
 
server.jsp-servlet.class-name=org.apache.jasper.servlet.JspServlet # The class name of the JSP servlet.
 
server.jsp-servlet.init-parameters.*= # Init parameters used to configure the JSP servlet
 
server.jsp-servlet.registered=true # Whether or not the JSP servlet is registered
 
server.port=8080 # Server HTTP port.
 
server.server-header= # Value to use for the Server response header (no header is sent if empty)
 
server.servlet-path=/ # Path of the main dispatcher servlet.
 
server.use-forward-headers= # If X-Forwarded-* headers should be applied to the HttpRequest.
 
server.session.cookie.comment= # Comment for the session cookie.
 
server.session.cookie.domain= # Domain for the session cookie.
 
server.session.cookie.http-only= # "HttpOnly" flag for the session cookie.
 
server.session.cookie.max-age= # Maximum age of the session cookie in seconds.
 
server.session.cookie.name= # Session cookie name.
 
server.session.cookie.path= # Path of the session cookie.
 
server.session.cookie.secure= # "Secure" flag for the session cookie.
 
server.session.persistent=false # Persist session data between restarts.
 
server.session.store-dir= # Directory used to store session data.
 
server.session.timeout= # Session timeout in seconds.
 
server.session.tracking-modes= # Session tracking modes (one or more of the following: "cookie", "url", "ssl").
 
server.ssl.ciphers= # Supported SSL ciphers.
 
server.ssl.client-auth= # Whether client authentication is wanted ("want") or needed ("need"). Requires a trust store.
 
server.ssl.enabled= # Enable SSL support.
 
server.ssl.enabled-protocols= # Enabled SSL protocols.
 
server.ssl.key-alias= # Alias that identifies the key in the key store.
 
server.ssl.key-password= # Password used to access the key in the key store.
 
server.ssl.key-store= # Path to the key store that holds the SSL certificate (typically a jks file).
 
server.ssl.key-store-password= # Password used to access the key store.
 
server.ssl.key-store-provider= # Provider for the key store.
 
server.ssl.key-store-type= # Type of the key store.
 
server.ssl.protocol=TLS # SSL protocol to use.
 
server.ssl.trust-store= # Trust store that holds SSL certificates.
 
server.ssl.trust-store-password= # Password used to access the trust store.
 
server.ssl.trust-store-provider= # Provider for the trust store.
 
server.ssl.trust-store-type= # Type of the trust store.
 
server.tomcat.accesslog.directory=logs # Directory in which log files are created. Can be relative to the tomcat base dir or absolute.
 
server.tomcat.accesslog.enabled=false # Enable access log.
 
server.tomcat.accesslog.pattern=common # Format pattern for access logs.
 
server.tomcat.accesslog.prefix=access_log # Log file name prefix.
 
server.tomcat.accesslog.rename-on-rotate=false # Defer inclusion of the date stamp in the file name until rotate time.
 
server.tomcat.accesslog.request-attributes-enabled=false # Set request attributes for IP address, Hostname, protocol and port used for the request.
 
server.tomcat.accesslog.suffix=.log # Log file name suffix.
 
server.tomcat.background-processor-delay=30 # Delay in seconds between the invocation of backgroundProcess methods.
 
server.tomcat.basedir= # Tomcat base directory. If not specified a temporary directory will be used.
 
server.tomcat.internal-proxies=10\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}|\\
 
        192\\.168\\.\\d{1,3}\\.\\d{1,3}|\\
 
        169\\.254\\.\\d{1,3}\\.\\d{1,3}|\\
 
        127\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}|\\
 
        172\\.1[6-9]{1}\\.\\d{1,3}\\.\\d{1,3}|\\
 
        172\\.2[0-9]{1}\\.\\d{1,3}\\.\\d{1,3}|\\
 
        172\\.3[0-1]{1}\\.\\d{1,3}\\.\\d{1,3} # regular expression matching trusted IP addresses.
 
server.tomcat.max-threads=0 # Maximum amount of worker threads.
 
server.tomcat.min-spare-threads=0 # Minimum amount of worker threads.
 
server.tomcat.port-header=X-Forwarded-Port # Name of the HTTP header used to override the original port value.
 
server.tomcat.protocol-header= # Header that holds the incoming protocol, usually named "X-Forwarded-Proto".
 
server.tomcat.protocol-header-https-value=https # Value of the protocol header that indicates that the incoming request uses SSL.
 
server.tomcat.redirect-context-root= # Whether requests to the context root should be redirected by appending a / to the path.
 
server.tomcat.remote-ip-header= # Name of the http header from which the remote ip is extracted. For instance `X-FORWARDED-FOR`
 
server.tomcat.uri-encoding=UTF-8 # Character encoding to use to decode the URI.
 
server.undertow.accesslog.dir= # Undertow access log directory.
 
server.undertow.accesslog.enabled=false # Enable access log.
 
server.undertow.accesslog.pattern=common # Format pattern for access logs.
 
server.undertow.accesslog.prefix=access_log. # Log file name prefix.
 
server.undertow.accesslog.suffix=log # Log file name suffix.
 
server.undertow.buffer-size= # Size of each buffer in bytes.
 
server.undertow.buffers-per-region= # Number of buffer per region.
 
server.undertow.direct-buffers= # Allocate buffers outside the Java heap.
 
server.undertow.io-threads= # Number of I/O threads to create for the worker.
 
server.undertow.worker-threads= # Number of worker threads.
 
 
 
# FREEMARKER (FreeMarkerAutoConfiguration)
 
spring.freemarker.allow-request-override=false # Set whether HttpServletRequest attributes are allowed to override (hide) controller generated model attributes of the same name.
 
spring.freemarker.allow-session-override=false # Set whether HttpSession attributes are allowed to override (hide) controller generated model attributes of the same name.
 
spring.freemarker.cache=false # Enable template caching.
 
spring.freemarker.charset=UTF-8 # Template encoding.
 
spring.freemarker.check-template-location=true # Check that the templates location exists.
 
spring.freemarker.content-type=text/html # Content-Type value.
 
spring.freemarker.enabled=true # Enable MVC view resolution for this technology.
 
spring.freemarker.expose-request-attributes=false # Set whether all request attributes should be added to the model prior to merging with the template.
 
spring.freemarker.expose-session-attributes=false # Set whether all HttpSession attributes should be added to the model prior to merging with the template.
 
spring.freemarker.expose-spring-macro-helpers=true # Set whether to expose a RequestContext for use by Spring's macro library, under the name "springMacroRequestContext".
 
spring.freemarker.prefer-file-system-access=true # Prefer file system access for template loading. File system access enables hot detection of template changes.
 
spring.freemarker.prefix= # Prefix that gets prepended to view names when building a URL.
 
spring.freemarker.request-context-attribute= # Name of the RequestContext attribute for all views.
 
spring.freemarker.settings.*= # Well-known FreeMarker keys which will be passed to FreeMarker's Configuration.
 
spring.freemarker.suffix= # Suffix that gets appended to view names when building a URL.
 
spring.freemarker.template-loader-path=classpath:/templates/ # Comma-separated list of template paths.
 
spring.freemarker.view-names= # White list of view names that can be resolved.
 
 
 
# GROOVY TEMPLATES (GroovyTemplateAutoConfiguration)
 
spring.groovy.template.allow-request-override=false # Set whether HttpServletRequest attributes are allowed to override (hide) controller generated model attributes of the same name.
 
spring.groovy.template.allow-session-override=false # Set whether HttpSession attributes are allowed to override (hide) controller generated model attributes of the same name.
 
spring.groovy.template.cache= # Enable template caching.
 
spring.groovy.template.charset=UTF-8 # Template encoding.
 
spring.groovy.template.check-template-location=true # Check that the templates location exists.
 
spring.groovy.template.configuration.*= # See GroovyMarkupConfigurer
 
spring.groovy.template.content-type=test/html # Content-Type value.
 
spring.groovy.template.enabled=true # Enable MVC view resolution for this technology.
 
spring.groovy.template.expose-request-attributes=false # Set whether all request attributes should be added to the model prior to merging with the template.
 
spring.groovy.template.expose-session-attributes=false # Set whether all HttpSession attributes should be added to the model prior to merging with the template.
 
spring.groovy.template.expose-spring-macro-helpers=true # Set whether to expose a RequestContext for use by Spring's macro library, under the name "springMacroRequestContext".
 
spring.groovy.template.prefix= # Prefix that gets prepended to view names when building a URL.
 
spring.groovy.template.request-context-attribute= # Name of the RequestContext attribute for all views.
 
spring.groovy.template.resource-loader-path=classpath:/templates/ # Template path.
 
spring.groovy.template.suffix=.tpl # Suffix that gets appended to view names when building a URL.
 
spring.groovy.template.view-names= # White list of view names that can be resolved.
 
 
 
# SPRING HATEOAS (HateoasProperties)
 
spring.hateoas.use-hal-as-default-json-media-type=true # Specify if application/hal+json responses should be sent to requests that accept application/json.
 
 
 
# HTTP message conversion
 
spring.http.converters.preferred-json-mapper=jackson # Preferred JSON mapper to use for HTTP message conversion. Set to "gson" to force the use of Gson when both it and Jackson are on the classpath.
 
 
 
# HTTP encoding (HttpEncodingProperties)
 
spring.http.encoding.charset=UTF-8 # Charset of HTTP requests and responses. Added to the "Content-Type" header if not set explicitly.
 
spring.http.encoding.enabled=true # Enable http encoding support.
 
spring.http.encoding.force= # Force the encoding to the configured charset on HTTP requests and responses.
 
spring.http.encoding.force-request= # Force the encoding to the configured charset on HTTP requests. Defaults to true when "force" has not been specified.
 
spring.http.encoding.force-response= # Force the encoding to the configured charset on HTTP responses.
 
spring.http.encoding.mapping= # Locale to Encoding mapping.
 
 
 
# MULTIPART (MultipartProperties)
 
spring.http.multipart.enabled=true # Enable support of multi-part uploads.
 
spring.http.multipart.file-size-threshold=0 # Threshold after which files will be written to disk. Values can use the suffixed "MB" or "KB" to indicate a Megabyte or Kilobyte size.
 
spring.http.multipart.location= # Intermediate location of uploaded files.
 
spring.http.multipart.max-file-size=1Mb # Max file size. Values can use the suffixed "MB" or "KB" to indicate a Megabyte or Kilobyte size.
 
spring.http.multipart.max-request-size=10Mb # Max request size. Values can use the suffixed "MB" or "KB" to indicate a Megabyte or Kilobyte size.
 
spring.http.multipart.resolve-lazily=false # Whether to resolve the multipart request lazily at the time of file or parameter access.
 
 
 
# JACKSON (JacksonProperties)
 
spring.jackson.date-format= # Date format string or a fully-qualified date format class name. For instance `yyyy-MM-dd HH:mm:ss`.
 
spring.jackson.default-property-inclusion= # Controls the inclusion of properties during serialization.
 
spring.jackson.deserialization.*= # Jackson on/off features that affect the way Java objects are deserialized.
 
spring.jackson.generator.*= # Jackson on/off features for generators.
 
spring.jackson.joda-date-time-format= # Joda date time format string. If not configured, "date-format" will be used as a fallback if it is configured with a format string.
 
spring.jackson.locale= # Locale used for formatting.
 
spring.jackson.mapper.*= # Jackson general purpose on/off features.
 
spring.jackson.parser.*= # Jackson on/off features for parsers.
 
spring.jackson.property-naming-strategy= # One of the constants on Jackson's PropertyNamingStrategy. Can also be a fully-qualified class name of a PropertyNamingStrategy subclass.
 
spring.jackson.serialization.*= # Jackson on/off features that affect the way Java objects are serialized.
 
spring.jackson.serialization-inclusion= # Controls the inclusion of properties during serialization. Configured with one of the values in Jackson's JsonInclude.Include enumeration.
 
spring.jackson.time-zone= # Time zone used when formatting dates. For instance `America/Los_Angeles`
 
 
 
# JERSEY (JerseyProperties)
 
spring.jersey.application-path= # Path that serves as the base URI for the application. Overrides the value of "@ApplicationPath" if specified.
 
spring.jersey.filter.order=0 # Jersey filter chain order.
 
spring.jersey.init.*= # Init parameters to pass to Jersey via the servlet or filter.
 
spring.jersey.servlet.load-on-startup=-1 # Load on startup priority of the Jersey servlet.
 
spring.jersey.type=servlet # Jersey integration type.
 
 
 
# SPRING MOBILE DEVICE VIEWS (DeviceDelegatingViewResolverAutoConfiguration)
 
spring.mobile.devicedelegatingviewresolver.enable-fallback=false # Enable support for fallback resolution.
 
spring.mobile.devicedelegatingviewresolver.enabled=false # Enable device view resolver.
 
spring.mobile.devicedelegatingviewresolver.mobile-prefix=mobile/ # Prefix that gets prepended to view names for mobile devices.
 
spring.mobile.devicedelegatingviewresolver.mobile-suffix= # Suffix that gets appended to view names for mobile devices.
 
spring.mobile.devicedelegatingviewresolver.normal-prefix= # Prefix that gets prepended to view names for normal devices.
 
spring.mobile.devicedelegatingviewresolver.normal-suffix= # Suffix that gets appended to view names for normal devices.
 
spring.mobile.devicedelegatingviewresolver.tablet-prefix=tablet/ # Prefix that gets prepended to view names for tablet devices.
 
spring.mobile.devicedelegatingviewresolver.tablet-suffix= # Suffix that gets appended to view names for tablet devices.
 
 
 
# SPRING MOBILE SITE PREFERENCE (SitePreferenceAutoConfiguration)
 
spring.mobile.sitepreference.enabled=true # Enable SitePreferenceHandler.
 
 
 
# MUSTACHE TEMPLATES (MustacheAutoConfiguration)
 
spring.mustache.allow-request-override= # Set whether HttpServletRequest attributes are allowed to override (hide) controller generated model attributes of the same name.
 
spring.mustache.allow-session-override= # Set whether HttpSession attributes are allowed to override (hide) controller generated model attributes of the same name.
 
spring.mustache.cache= # Enable template caching.
 
spring.mustache.charset= # Template encoding.
 
spring.mustache.check-template-location= # Check that the templates location exists.
 
spring.mustache.content-type= # Content-Type value.
 
spring.mustache.enabled= # Enable MVC view resolution for this technology.
 
spring.mustache.expose-request-attributes= # Set whether all request attributes should be added to the model prior to merging with the template.
 
spring.mustache.expose-session-attributes= # Set whether all HttpSession attributes should be added to the model prior to merging with the template.
 
spring.mustache.expose-spring-macro-helpers= # Set whether to expose a RequestContext for use by Spring's macro library, under the name "springMacroRequestContext".
 
spring.mustache.prefix=classpath:/templates/ # Prefix to apply to template names.
 
spring.mustache.request-context-attribute= # Name of the RequestContext attribute for all views.
 
spring.mustache.suffix=.html # Suffix to apply to template names.
 
spring.mustache.view-names= # White list of view names that can be resolved.
 
 
 
# SPRING MVC (WebMvcProperties)
 
spring.mvc.async.request-timeout= # Amount of time (in milliseconds) before asynchronous request handling times out.
 
spring.mvc.date-format= # Date format to use. For instance `dd/MM/yyyy`.
 
spring.mvc.dispatch-trace-request=false # Dispatch TRACE requests to the FrameworkServlet doService method.
 
spring.mvc.dispatch-options-request=true # Dispatch OPTIONS requests to the FrameworkServlet doService method.
 
spring.mvc.favicon.enabled=true # Enable resolution of favicon.ico.
 
spring.mvc.formcontent.putfilter.enabled=true # Enable Spring's HttpPutFormContentFilter.
 
spring.mvc.ignore-default-model-on-redirect=true # If the content of the "default" model should be ignored during redirect scenarios.
 
spring.mvc.locale= # Locale to use. By default, this locale is overridden by the "Accept-Language" header.
 
spring.mvc.locale-resolver=accept-header # Define how the locale should be resolved.
 
spring.mvc.log-resolved-exception=false # Enable warn logging of exceptions resolved by a "HandlerExceptionResolver".
 
spring.mvc.media-types.*= # Maps file extensions to media types for content negotiation.
 
spring.mvc.message-codes-resolver-format= # Formatting strategy for message codes. For instance `PREFIX_ERROR_CODE`.
 
spring.mvc.servlet.load-on-startup=-1 # Load on startup priority of the Spring Web Services servlet.
 
spring.mvc.static-path-pattern=/** # Path pattern used for static resources.
 
spring.mvc.throw-exception-if-no-handler-found=false # If a "NoHandlerFoundException" should be thrown if no Handler was found to process a request.
 
spring.mvc.view.prefix= # Spring MVC view prefix.
 
spring.mvc.view.suffix= # Spring MVC view suffix.
 
 
 
# SPRING RESOURCES HANDLING (ResourceProperties)
 
spring.resources.add-mappings=true # Enable default resource handling.
 
spring.resources.cache-period= # Cache period for the resources served by the resource handler, in seconds.
 
spring.resources.chain.cache=true # Enable caching in the Resource chain.
 
spring.resources.chain.enabled= # Enable the Spring Resource Handling chain. Disabled by default unless at least one strategy has been enabled.
 
spring.resources.chain.gzipped=false # Enable resolution of already gzipped resources.
 
spring.resources.chain.html-application-cache=false # Enable HTML5 application cache manifest rewriting.
 
spring.resources.chain.strategy.content.enabled=false # Enable the content Version Strategy.
 
spring.resources.chain.strategy.content.paths=/** # Comma-separated list of patterns to apply to the Version Strategy.
 
spring.resources.chain.strategy.fixed.enabled=false # Enable the fixed Version Strategy.
 
spring.resources.chain.strategy.fixed.paths=/** # Comma-separated list of patterns to apply to the Version Strategy.
 
spring.resources.chain.strategy.fixed.version= # Version string to use for the Version Strategy.
 
spring.resources.static-locations=classpath:/META-INF/resources/,classpath:/resources/,classpath:/static/,classpath:/public/ # Locations of static resources.
 
 
 
# SPRING SESSION (SessionProperties)
 
spring.session.hazelcast.map-name=spring:session:sessions # Name of the map used to store sessions.
 
spring.session.jdbc.initializer.enabled= # Create the required session tables on startup if necessary. Enabled automatically if the default table name is set or a custom schema is configured.
 
spring.session.jdbc.schema=classpath:org/springframework/session/jdbc/[email protected]@[email protected]@.sql # Path to the SQL file to use to initialize the database schema.
 
spring.session.jdbc.table-name=SPRING_SESSION # Name of database table used to store sessions.
 
spring.session.mongo.collection-name=sessions # Collection name used to store sessions.
 
spring.session.redis.flush-mode= # Flush mode for the Redis sessions.
 
spring.session.redis.namespace= # Namespace for keys used to store sessions.
 
spring.session.store-type= # Session store type.
 
 
 
# SPRING SOCIAL (SocialWebAutoConfiguration)
 
spring.social.auto-connection-views=false # Enable the connection status view for supported providers.
 
 
 
# SPRING SOCIAL FACEBOOK (FacebookAutoConfiguration)
 
spring.social.facebook.app-id= # your application's Facebook App ID
 
spring.social.facebook.app-secret= # your application's Facebook App Secret
 
 
 
# SPRING SOCIAL LINKEDIN (LinkedInAutoConfiguration)
 
spring.social.linkedin.app-id= # your application's LinkedIn App ID
 
spring.social.linkedin.app-secret= # your application's LinkedIn App Secret
 
 
 
# SPRING SOCIAL TWITTER (TwitterAutoConfiguration)
 
spring.social.twitter.app-id= # your application's Twitter App ID
 
spring.social.twitter.app-secret= # your application's Twitter App Secret
 
 
 
# THYMELEAF (ThymeleafAutoConfiguration)
 
spring.thymeleaf.cache=true # Enable template caching.
 
spring.thymeleaf.check-template=true # Check that the template exists before rendering it.
 
spring.thymeleaf.check-template-location=true # Check that the templates location exists.
 
spring.thymeleaf.content-type=text/html # Content-Type value.
 
spring.thymeleaf.enabled=true # Enable MVC Thymeleaf view resolution.
 
spring.thymeleaf.encoding=UTF-8 # Template encoding.
 
spring.thymeleaf.excluded-view-names= # Comma-separated list of view names that should be excluded from resolution.
 
spring.thymeleaf.mode=HTML5 # Template mode to be applied to templates. See also StandardTemplateModeHandlers.
 
spring.thymeleaf.prefix=classpath:/templates/ # Prefix that gets prepended to view names when building a URL.
 
spring.thymeleaf.suffix=.html # Suffix that gets appended to view names when building a URL.
 
spring.thymeleaf.template-resolver-order= # Order of the template resolver in the chain.
 
spring.thymeleaf.view-names= # Comma-separated list of view names that can be resolved.
 
 
 
# VELOCITY TEMPLATES (VelocityAutoConfiguration)
 
spring.velocity.allow-request-override=false # Set whether HttpServletRequest attributes are allowed to override (hide) controller generated model attributes of the same name.
 
spring.velocity.allow-session-override=false # Set whether HttpSession attributes are allowed to override (hide) controller generated model attributes of the same name.
 
spring.velocity.cache= # Enable template caching.
 
spring.velocity.charset=UTF-8 # Template encoding.
 
spring.velocity.check-template-location=true # Check that the templates location exists.
 
spring.velocity.content-type=text/html # Content-Type value.
 
spring.velocity.date-tool-attribute= # Name of the DateTool helper object to expose in the Velocity context of the view.
 
spring.velocity.enabled=true # Enable MVC view resolution for this technology.
 
spring.velocity.expose-request-attributes=false # Set whether all request attributes should be added to the model prior to merging with the template.
 
spring.velocity.expose-session-attributes=false # Set whether all HttpSession attributes should be added to the model prior to merging with the template.
 
spring.velocity.expose-spring-macro-helpers=true # Set whether to expose a RequestContext for use by Spring's macro library, under the name "springMacroRequestContext".
 
spring.velocity.number-tool-attribute= # Name of the NumberTool helper object to expose in the Velocity context of the view.
 
spring.velocity.prefer-file-system-access=true # Prefer file system access for template loading. File system access enables hot detection of template changes.
 
spring.velocity.prefix= # Prefix that gets prepended to view names when building a URL.
 
spring.velocity.properties.*= # Additional velocity properties.
 
spring.velocity.request-context-attribute= # Name of the RequestContext attribute for all views.
 
spring.velocity.resource-loader-path=classpath:/templates/ # Template path.
 
spring.velocity.suffix=.vm # Suffix that gets appended to view names when building a URL.
 
spring.velocity.toolbox-config-location= # Velocity Toolbox config location. For instance `/WEB-INF/toolbox.xml`
 
spring.velocity.view-names= # White list of view names that can be resolved.
 
 
 
# SPRING WEB SERVICES (WebServicesProperties)
 
spring.webservices.path=/services # Path that serves as the base URI for the services.
 
spring.webservices.servlet.init= # Servlet init parameters to pass to Spring Web Services.
 
spring.webservices.servlet.load-on-startup=-1 # Load on startup priority of the Spring Web Services servlet.
 
 
 
 
 
 
 
# ----------------------------------------
 
# SECURITY PROPERTIES
 
# ----------------------------------------
 
# SECURITY (SecurityProperties)
 
security.basic.authorize-mode=role # Security authorize mode to apply.
 
security.basic.enabled=true # Enable basic authentication.
 
security.basic.path=/** # Comma-separated list of paths to secure.
 
security.basic.realm=Spring # HTTP basic realm name.
 
security.enable-csrf=false # Enable Cross Site Request Forgery support.
 
security.filter-order=0 # Security filter chain order.
 
security.filter-dispatcher-types=ASYNC, FORWARD, INCLUDE, REQUEST # Security filter chain dispatcher types.
 
security.headers.cache=true # Enable cache control HTTP headers.
 
security.headers.content-type=true # Enable "X-Content-Type-Options" header.
 
security.headers.frame=true # Enable "X-Frame-Options" header.
 
security.headers.hsts= # HTTP Strict Transport Security (HSTS) mode (none, domain, all).
 
security.headers.xss=true # Enable cross site scripting (XSS) protection.
 
security.ignored= # Comma-separated list of paths to exclude from the default secured paths.
 
security.require-ssl=false # Enable secure channel for all requests.
 
security.sessions=stateless # Session creation policy (always, never, if_required, stateless).
 
security.user.name=user # Default user name.
 
security.user.password= # Password for the default user name. A random password is logged on startup by default.
 
security.user.role=USER # Granted roles for the default user name.
 
 
 
# SECURITY OAUTH2 CLIENT (OAuth2ClientProperties)
 
security.oauth2.client.client-id= # OAuth2 client id.
 
security.oauth2.client.client-secret= # OAuth2 client secret. A random secret is generated by default
 
 
 
# SECURITY OAUTH2 RESOURCES (ResourceServerProperties)
 
security.oauth2.resource.id= # Identifier of the resource.
 
security.oauth2.resource.jwt.key-uri= # The URI of the JWT token. Can be set if the value is not available and the key is public.
 
security.oauth2.resource.jwt.key-value= # The verification key of the JWT token. Can either be a symmetric secret or PEM-encoded RSA public key.
 
security.oauth2.resource.prefer-token-info=true # Use the token info, can be set to false to use the user info.
 
security.oauth2.resource.service-id=resource #
 
security.oauth2.resource.token-info-uri= # URI of the token decoding endpoint.
 
security.oauth2.resource.token-type= # The token type to send when using the userInfoUri.
 
security.oauth2.resource.user-info-uri= # URI of the user endpoint.
 
 
 
# SECURITY OAUTH2 SSO (OAuth2SsoProperties)
 
security.oauth2.sso.filter-order= # Filter order to apply if not providing an explicit WebSecurityConfigurerAdapter
 
security.oauth2.sso.login-path=/login # Path to the login page, i.e. the one that triggers the redirect to the OAuth2 Authorization Server
 
 
 
 
 
# ----------------------------------------
 
# DATA PROPERTIES
 
# ----------------------------------------
 
 
 
# FLYWAY (FlywayProperties)
 
flyway.baseline-description= #
 
flyway.baseline-version=1 # version to start migration
 
flyway.baseline-on-migrate= #
 
flyway.check-location=false # Check that migration scripts location exists.
 
flyway.clean-on-validation-error= #
 
flyway.enabled=true # Enable flyway.
 
flyway.encoding= #
 
flyway.ignore-failed-future-migration= #
 
flyway.init-sqls= # SQL statements to execute to initialize a connection immediately after obtaining it.
 
flyway.locations=classpath:db/migration # locations of migrations scripts
 
flyway.out-of-order= #
 
flyway.password= # JDBC password if you want Flyway to create its own DataSource
 
flyway.placeholder-prefix= #
 
flyway.placeholder-replacement= #
 
flyway.placeholder-suffix= #
 
flyway.placeholders.*= #
 
flyway.schemas= # schemas to update
 
flyway.sql-migration-prefix=V #
 
flyway.sql-migration-separator= #
 
flyway.sql-migration-suffix=.sql #
 
flyway.table= #
 
flyway.url= # JDBC url of the database to migrate. If not set, the primary configured data source is used.
 
flyway.user= # Login user of the database to migrate.
 
flyway.validate-on-migrate= #
 
 
 
# LIQUIBASE (LiquibaseProperties)
 
liquibase.change-log=classpath:/db/changelog/db.changelog-master.yaml # Change log configuration path.
 
liquibase.check-change-log-location=true # Check the change log location exists.
 
liquibase.contexts= # Comma-separated list of runtime contexts to use.
 
liquibase.default-schema= # Default database schema.
 
liquibase.drop-first=false # Drop the database schema first.
 
liquibase.enabled=true # Enable liquibase support.
 
liquibase.labels= # Comma-separated list of runtime labels to use.
 
liquibase.parameters.*= # Change log parameters.
 
liquibase.password= # Login password of the database to migrate.
 
liquibase.rollback-file= # File to which rollback SQL will be written when an update is performed.
 
liquibase.url= # JDBC url of the database to migrate. If not set, the primary configured data source is used.
 
liquibase.user= # Login user of the database to migrate.
 
 
 
# COUCHBASE (CouchbaseProperties)
 
spring.couchbase.bootstrap-hosts= # Couchbase nodes (host or IP address) to bootstrap from.
 
spring.couchbase.bucket.name=default # Name of the bucket to connect to.
 
spring.couchbase.bucket.password=  # Password of the bucket.
 
spring.couchbase.env.endpoints.key-value=1 # Number of sockets per node against the Key/value service.
 
spring.couchbase.env.endpoints.query=1 # Number of sockets per node against the Query (N1QL) service.
 
spring.couchbase.env.endpoints.view=1 # Number of sockets per node against the view service.
 
spring.couchbase.env.ssl.enabled= # Enable SSL support. Enabled automatically if a "keyStore" is provided unless specified otherwise.
 
spring.couchbase.env.ssl.key-store= # Path to the JVM key store that holds the certificates.
 
spring.couchbase.env.ssl.key-store-password= # Password used to access the key store.
 
spring.couchbase.env.timeouts.connect=5000 # Bucket connections timeout in milliseconds.
 
spring.couchbase.env.timeouts.key-value=2500 # Blocking operations performed on a specific key timeout in milliseconds.
 
spring.couchbase.env.timeouts.query=7500 # N1QL query operations timeout in milliseconds.
 
spring.couchbase.env.timeouts.socket-connect=1000 # Socket connect connections timeout in milliseconds.
 
spring.couchbase.env.timeouts.view=7500 # Regular and geospatial view operations timeout in milliseconds.
 
 
 
# DAO (PersistenceExceptionTranslationAutoConfiguration)
 
spring.dao.exceptiontranslation.enabled=true # Enable the PersistenceExceptionTranslationPostProcessor.
 
 
 
# CASSANDRA (CassandraProperties)
 
spring.data.cassandra.cluster-name= # Name of the Cassandra cluster.
 
spring.data.cassandra.compression= # Compression supported by the Cassandra binary protocol.
 
spring.data.cassandra.connect-timeout-millis= # Socket option: connection time out.
 
spring.data.cassandra.consistency-level= # Queries consistency level.
 
spring.data.cassandra.contact-points=localhost # Comma-separated list of cluster node addresses.
 
spring.data.cassandra.fetch-size= # Queries default fetch size.
 
spring.data.cassandra.keyspace-name= # Keyspace name to use.
 
spring.data.cassandra.load-balancing-policy= # Class name of the load balancing policy.
 
spring.data.cassandra.port= # Port of the Cassandra server.
 
spring.data.cassandra.password= # Login password of the server.
 
spring.data.cassandra.read-timeout-millis= # Socket option: read time out.
 
spring.data.cassandra.reconnection-policy= # Reconnection policy class.
 
spring.data.cassandra.retry-policy= # Class name of the retry policy.
 
spring.data.cassandra.serial-consistency-level= # Queries serial consistency level.
 
spring.data.cassandra.schema-action=none # Schema action to take at startup.
 
spring.data.cassandra.ssl=false # Enable SSL support.
 
spring.data.cassandra.username= # Login user of the server.
 
 
 
# DATA COUCHBASE (CouchbaseDataProperties)
 
spring.data.couchbase.auto-index=false # Automatically create views and indexes.
 
spring.data.couchbase.consistency=read-your-own-writes # Consistency to apply by default on generated queries.
 
spring.data.couchbase.repositories.enabled=true # Enable Couchbase repositories.
 
 
 
# ELASTICSEARCH (ElasticsearchProperties)
 
spring.data.elasticsearch.cluster-name=elasticsearch # Elasticsearch cluster name.
 
spring.data.elasticsearch.cluster-nodes= # Comma-separated list of cluster node addresses. If not specified, starts a client node.
 
spring.data.elasticsearch.properties.*= # Additional properties used to configure the client.
 
spring.data.elasticsearch.repositories.enabled=true # Enable Elasticsearch repositories.
 
 
 
# MONGODB (MongoProperties)
 
spring.data.mongodb.authentication-database= # Authentication database name.
 
spring.data.mongodb.database=test # Database name.
 
spring.data.mongodb.field-naming-strategy= # Fully qualified name of the FieldNamingStrategy to use.
 
spring.data.mongodb.grid-fs-database= # GridFS database name.
 
spring.data.mongodb.host=localhost # Mongo server host.
 
spring.data.mongodb.password= # Login password of the mongo server.
 
spring.data.mongodb.port=27017 # Mongo server port.
 
spring.data.mongodb.repositories.enabled=true # Enable Mongo repositories.
 
spring.data.mongodb.uri=mongodb://localhost/test # Mongo database URI. When set, host and port are ignored.
 
spring.data.mongodb.username= # Login user of the mongo server.
 
 
 
# DATA REDIS
 
spring.data.redis.repositories.enabled=true # Enable Redis repositories.
 
 
 
# NEO4J (Neo4jProperties)
 
spring.data.neo4j.compiler= # Compiler to use.
 
spring.data.neo4j.embedded.enabled=true # Enable embedded mode if the embedded driver is available.
 
spring.data.neo4j.password= # Login password of the server.
 
spring.data.neo4j.repositories.enabled=true # Enable Neo4j repositories.
 
spring.data.neo4j.session.scope=singleton # Scope (lifetime) of the session.
 
spring.data.neo4j.uri= # URI used by the driver. Auto-detected by default.
 
spring.data.neo4j.username= # Login user of the server.
 
 
 
# DATA REST (RepositoryRestProperties)
 
spring.data.rest.base-path= # Base path to be used by Spring Data REST to expose repository resources.
 
spring.data.rest.default-page-size= # Default size of pages.
 
spring.data.rest.enable-enum-translation= # Enable enum value translation via the Spring Data REST default resource bundle.
 
spring.data.rest.limit-param-name= # Name of the URL query string parameter that indicates how many results to return at once.
 
spring.data.rest.max-page-size= # Maximum size of pages.
 
spring.data.rest.page-param-name= # Name of the URL query string parameter that indicates what page to return.
 
spring.data.rest.return-body-on-create= # Return a response body after creating an entity.
 
spring.data.rest.return-body-on-update= # Return a response body after updating an entity.
 
spring.data.rest.sort-param-name= # Name of the URL query string parameter that indicates what direction to sort results.
 
 
 
# SOLR (SolrProperties)
 
spring.data.solr.host=http://127.0.0.1:8983/solr # Solr host. Ignored if "zk-host" is set.
 
spring.data.solr.repositories.enabled=true # Enable Solr repositories.
 
spring.data.solr.zk-host= # ZooKeeper host address in the form HOST:PORT.
 
 
 
# DATASOURCE (DataSourceAutoConfiguration & DataSourceProperties)
 
spring.datasource.continue-on-error=false # Do not stop if an error occurs while initializing the database.
 
spring.datasource.data= # Data (DML) script resource reference.
 
spring.datasource.data-username= # User of the database to execute DML scripts (if different).
 
spring.datasource.data-password= # Password of the database to execute DML scripts (if different).
 
spring.datasource.dbcp.*= # Commons DBCP specific settings
 
spring.datasource.dbcp2.*= # Commons DBCP2 specific settings
 
spring.datasource.driver-class-name= # Fully qualified name of the JDBC driver. Auto-detected based on the URL by default.
 
spring.datasource.generate-unique-name=false # Generate a random datasource name.
 
spring.datasource.hikari.*= # Hikari specific settings
 
spring.datasource.initialize=true # Populate the database using 'data.sql'.
 
spring.datasource.jmx-enabled=false # Enable JMX support (if provided by the underlying pool).
 
spring.datasource.jndi-name= # JNDI location of the datasource. Class, url, username & password are ignored when set.
 
spring.datasource.name=testdb # Name of the datasource.
 
spring.datasource.password= # Login password of the database.
 
spring.datasource.platform=all # Platform to use in the schema resource (schema-${platform}.sql).
 
spring.datasource.schema= # Schema (DDL) script resource reference.
 
spring.datasource.schema-username= # User of the database to execute DDL scripts (if different).
 
spring.datasource.schema-password= # Password of the database to execute DDL scripts (if different).
 
spring.datasource.separator=; # Statement separator in SQL initialization scripts.
 
spring.datasource.sql-script-encoding= # SQL scripts encoding.
 
spring.datasource.tomcat.*= # Tomcat datasource specific settings
 
spring.datasource.type= # Fully qualified name of the connection pool implementation to use. By default, it is auto-detected from the classpath.
 
spring.datasource.url= # JDBC url of the database.
 
spring.datasource.username=
 
 
 
# JEST (Elasticsearch HTTP client) (JestProperties)
 
spring.elasticsearch.jest.connection-timeout=3000 # Connection timeout in milliseconds.
 
spring.elasticsearch.jest.password= # Login password.
 
spring.elasticsearch.jest.proxy.host= # Proxy host the HTTP client should use.
 
spring.elasticsearch.jest.proxy.port= # Proxy port the HTTP client should use.
 
spring.elasticsearch.jest.read-timeout=3000 # Read timeout in milliseconds.
 
spring.elasticsearch.jest.uris=http://localhost:9200 # Comma-separated list of the Elasticsearch instances to use.
 
spring.elasticsearch.jest.username= # Login user.
 
 
 
# H2 Web Console (H2ConsoleProperties)
 
spring.h2.console.enabled=false # Enable the console.
 
spring.h2.console.path=/h2-console # Path at which the console will be available.
 
spring.h2.console.settings.trace=false # Enable trace output.
 
spring.h2.console.settings.web-allow-others=false # Enable remote access.
 
 
 
# JOOQ (JooqAutoConfiguration)
 
spring.jooq.sql-dialect= # SQLDialect JOOQ used when communicating with the configured datasource. For instance `POSTGRES`
 
 
 
# JPA (JpaBaseConfiguration, HibernateJpaAutoConfiguration)
 
spring.data.jpa.repositories.enabled=true # Enable JPA repositories.
 
spring.jpa.database= # Target database to operate on, auto-detected by default. Can be alternatively set using the "databasePlatform" property.
 
spring.jpa.database-platform= # Name of the target database to operate on, auto-detected by default. Can be alternatively set using the "Database" enum.
 
spring.jpa.generate-ddl=false # Initialize the schema on startup.
 
spring.jpa.hibernate.ddl-auto= # DDL mode. This is actually a shortcut for the "hibernate.hbm2ddl.auto" property. Default to "create-drop" when using an embedded database, "none" otherwise.
 
spring.jpa.hibernate.naming.implicit-strategy= # Hibernate 5 implicit naming strategy fully qualified name.
 
spring.jpa.hibernate.naming.physical-strategy= # Hibernate 5 physical naming strategy fully qualified name.
 
spring.jpa.hibernate.naming.strategy= # Hibernate 4 naming strategy fully qualified name. Not supported with Hibernate 5.
 
spring.jpa.hibernate.use-new-id-generator-mappings= # Use Hibernate's newer IdentifierGenerator for AUTO, TABLE and SEQUENCE.
 
spring.jpa.open-in-view=true # Register OpenEntityManagerInViewInterceptor. Binds a JPA EntityManager to the thread for the entire processing of the request.
 
spring.jpa.properties.*= # Additional native properties to set on the JPA provider.
 
spring.jpa.show-sql=false # Enable logging of SQL statements.
 
 
 
# JTA (JtaAutoConfiguration)
 
spring.jta.enabled=true # Enable JTA support.
 
spring.jta.log-dir= # Transaction logs directory.
 
spring.jta.transaction-manager-id= # Transaction manager unique identifier.
 
 
 
# ATOMIKOS (AtomikosProperties)
 
spring.jta.atomikos.connectionfactory.borrow-connection-timeout=30 # Timeout, in seconds, for borrowing connections from the pool.
 
spring.jta.atomikos.connectionfactory.ignore-session-transacted-flag=true # Whether or not to ignore the transacted flag when creating session.
 
spring.jta.atomikos.connectionfactory.local-transaction-mode=false # Whether or not local transactions are desired.
 
spring.jta.atomikos.connectionfactory.maintenance-interval=60 # The time, in seconds, between runs of the pool's maintenance thread.
 
spring.jta.atomikos.connectionfactory.max-idle-time=60 # The time, in seconds, after which connections are cleaned up from the pool.
 
spring.jta.atomikos.connectionfactory.max-lifetime=0 # The time, in seconds, that a connection can be pooled for before being destroyed. 0 denotes no limit.
 
spring.jta.atomikos.connectionfactory.max-pool-size=1 # The maximum size of the pool.
 
spring.jta.atomikos.connectionfactory.min-pool-size=1 # The minimum size of the pool.
 
spring.jta.atomikos.connectionfactory.reap-timeout=0 # The reap timeout, in seconds, for borrowed connections. 0 denotes no limit.
 
spring.jta.atomikos.connectionfactory.unique-resource-name=jmsConnectionFactory # The unique name used to identify the resource during recovery.
 
spring.jta.atomikos.datasource.borrow-connection-timeout=30 # Timeout, in seconds, for borrowing connections from the pool.
 
spring.jta.atomikos.datasource.default-isolation-level= # Default isolation level of connections provided by the pool.
 
spring.jta.atomikos.datasource.login-timeout= # Timeout, in seconds, for establishing a database connection.
 
spring.jta.atomikos.datasource.maintenance-interval=60 # The time, in seconds, between runs of the pool's maintenance thread.
 
spring.jta.atomikos.datasource.max-idle-time=60 # The time, in seconds, after which connections are cleaned up from the pool.
 
spring.jta.atomikos.datasource.max-lifetime=0 # The time, in seconds, that a connection can be pooled for before being destroyed. 0 denotes no limit.
 
spring.jta.atomikos.datasource.max-pool-size=1 # The maximum size of the pool.
 
spring.jta.atomikos.datasource.min-pool-size=1 # The minimum size of the pool.
 
spring.jta.atomikos.datasource.reap-timeout=0 # The reap timeout, in seconds, for borrowed connections. 0 denotes no limit.
 
spring.jta.atomikos.datasource.test-query= # SQL query or statement used to validate a connection before returning it.
 
spring.jta.atomikos.datasource.unique-resource-name=dataSource # The unique name used to identify the resource during recovery.
 
spring.jta.atomikos.properties.checkpoint-interval=500 # Interval between checkpoints.
 
spring.jta.atomikos.properties.console-file-count=1 # Number of debug logs files that can be created.
 
spring.jta.atomikos.properties.console-file-limit=-1 # How many bytes can be stored at most in debug logs files.
 
spring.jta.atomikos.properties.console-file-name=tm.out # Debug logs file name.
 
spring.jta.atomikos.properties.console-log-level= # Console log level.
 
spring.jta.atomikos.properties.default-jta-timeout=10000 # Default timeout for JTA transactions.
 
spring.jta.atomikos.properties.enable-logging=true # Enable disk logging.
 
spring.jta.atomikos.properties.force-shutdown-on-vm-exit=false # Specify if a VM shutdown should trigger forced shutdown of the transaction core.
 
spring.jta.atomikos.properties.log-base-dir= # Directory in which the log files should be stored.
 
spring.jta.atomikos.properties.log-base-name=tmlog # Transactions log file base name.
 
spring.jta.atomikos.properties.max-actives=50 # Maximum number of active transactions.
 
spring.jta.atomikos.properties.max-timeout=300000 # Maximum timeout (in milliseconds) that can be allowed for transactions.
 
spring.jta.atomikos.properties.output-dir= # Directory in which to store the debug log files.
 
spring.jta.atomikos.properties.serial-jta-transactions=true # Specify if sub-transactions should be joined when possible.
 
spring.jta.atomikos.properties.service= # Transaction manager implementation that should be started.
 
spring.jta.atomikos.properties.threaded-two-phase-commit=true # Use different (and concurrent) threads for two-phase commit on the participating resources.
 
spring.jta.atomikos.properties.transaction-manager-unique-name= # Transaction manager's unique name.
 
 
 
# BITRONIX
 
spring.jta.bitronix.connectionfactory.acquire-increment=1 # Number of connections to create when growing the pool.
 
spring.jta.bitronix.connectionfactory.acquisition-interval=1 # Time, in seconds, to wait before trying to acquire a connection again after an invalid connection was acquired.
 
spring.jta.bitronix.connectionfactory.acquisition-timeout=30 # Timeout, in seconds, for acquiring connections from the pool.
 
spring.jta.bitronix.connectionfactory.allow-local-transactions=true # Whether or not the transaction manager should allow mixing XA and non-XA transactions.
 
spring.jta.bitronix.connectionfactory.apply-transaction-timeout=false # Whether or not the transaction timeout should be set on the XAResource when it is enlisted.
 
spring.jta.bitronix.connectionfactory.automatic-enlisting-enabled=true # Whether or not resources should be enlisted and delisted automatically.
 
spring.jta.bitronix.connectionfactory.cache-producers-consumers=true # Whether or not produces and consumers should be cached.
 
spring.jta.bitronix.connectionfactory.defer-connection-release=true # Whether or not the provider can run many transactions on the same connection and supports transaction interleaving.
 
spring.jta.bitronix.connectionfactory.ignore-recovery-failures=false # Whether or not recovery failures should be ignored.
 
spring.jta.bitronix.connectionfactory.max-idle-time=60 # The time, in seconds, after which connections are cleaned up from the pool.
 
spring.jta.bitronix.connectionfactory.max-pool-size=10 # The maximum size of the pool. 0 denotes no limit.
 
spring.jta.bitronix.connectionfactory.min-pool-size=0 # The minimum size of the pool.
 
spring.jta.bitronix.connectionfactory.password= # The password to use to connect to the JMS provider.
 
spring.jta.bitronix.connectionfactory.share-transaction-connections=false #  Whether or not connections in the ACCESSIBLE state can be shared within the context of a transaction.
 
spring.jta.bitronix.connectionfactory.test-connections=true # Whether or not connections should be tested when acquired from the pool.
 
spring.jta.bitronix.connectionfactory.two-pc-ordering-position=1 # The position that this resource should take during two-phase commit (always first is Integer.MIN_VALUE, always last is Integer.MAX_VALUE).
 
spring.jta.bitronix.connectionfactory.unique-name=jmsConnectionFactory # The unique name used to identify the resource during recovery.
 
spring.jta.bitronix.connectionfactory.use-tm-join=true Whether or not TMJOIN should be used when starting XAResources.
 
spring.jta.bitronix.connectionfactory.user= # The user to use to connect to the JMS provider.
 
spring.jta.bitronix.datasource.acquire-increment=1 # Number of connections to create when growing the pool.
 
spring.jta.bitronix.datasource.acquisition-interval=1 # Time, in seconds, to wait before trying to acquire a connection again after an invalid connection was acquired.
 
spring.jta.bitronix.datasource.acquisition-timeout=30 # Timeout, in seconds, for acquiring connections from the pool.
 
spring.jta.bitronix.datasource.allow-local-transactions=true # Whether or not the transaction manager should allow mixing XA and non-XA transactions.
 
spring.jta.bitronix.datasource.apply-transaction-timeout=false # Whether or not the transaction timeout should be set on the XAResource when it is enlisted.
 
spring.jta.bitronix.datasource.automatic-enlisting-enabled=true # Whether or not resources should be enlisted and delisted automatically.
 
spring.jta.bitronix.datasource.cursor-holdability= # The default cursor holdability for connections.
 
spring.jta.bitronix.datasource.defer-connection-release=true # Whether or not the database can run many transactions on the same connection and supports transaction interleaving.
 
spring.jta.bitronix.datasource.enable-jdbc4-connection-test= # Whether or not Connection.isValid() is called when acquiring a connection from the pool.
 
spring.jta.bitronix.datasource.ignore-recovery-failures=false # Whether or not recovery failures should be ignored.
 
spring.jta.bitronix.datasource.isolation-level= # The default isolation level for connections.
 
spring.jta.bitronix.datasource.local-auto-commit= # The default auto-commit mode for local transactions.
 
spring.jta.bitronix.datasource.login-timeout= # Timeout, in seconds, for establishing a database connection.
 
spring.jta.bitronix.datasource.max-idle-time=60 # The time, in seconds, after which connections are cleaned up from the pool.
 
spring.jta.bitronix.datasource.max-pool-size=10 # The maximum size of the pool. 0 denotes no limit.
 
spring.jta.bitronix.datasource.min-pool-size=0 # The minimum size of the pool.
 
spring.jta.bitronix.datasource.prepared-statement-cache-size=0 # The target size of the prepared statement cache. 0 disables the cache.
 
spring.jta.bitronix.datasource.share-transaction-connections=false #  Whether or not connections in the ACCESSIBLE state can be shared within the context of a transaction.
 
spring.jta.bitronix.datasource.test-query= # SQL query or statement used to validate a connection before returning it.
 
spring.jta.bitronix.datasource.two-pc-ordering-position=1 # The position that this resource should take during two-phase commit (always first is Integer.MIN_VALUE, always last is Integer.MAX_VALUE).
 
spring.jta.bitronix.datasource.unique-name=dataSource # The unique name used to identify the resource during recovery.
 
spring.jta.bitronix.datasource.use-tm-join=true Whether or not TMJOIN should be used when starting XAResources.
 
spring.jta.bitronix.properties.allow-multiple-lrc=false # Allow multiple LRC resources to be enlisted into the same transaction.
 
spring.jta.bitronix.properties.asynchronous2-pc=false # Enable asynchronously execution of two phase commit.
 
spring.jta.bitronix.properties.background-recovery-interval-seconds=60 # Interval in seconds at which to run the recovery process in the background.
 
spring.jta.bitronix.properties.current-node-only-recovery=true # Recover only the current node.
 
spring.jta.bitronix.properties.debug-zero-resource-transaction=false # Log the creation and commit call stacks of transactions executed without a single enlisted resource.
 
spring.jta.bitronix.properties.default-transaction-timeout=60 # Default transaction timeout in seconds.
 
spring.jta.bitronix.properties.disable-jmx=false # Enable JMX support.
 
spring.jta.bitronix.properties.exception-analyzer= # Set the fully qualified name of the exception analyzer implementation to use.
 
spring.jta.bitronix.properties.filter-log-status=false # Enable filtering of logs so that only mandatory logs are written.
 
spring.jta.bitronix.properties.force-batching-enabled=true #  Set if disk forces are batched.
 
spring.jta.bitronix.properties.forced-write-enabled=true # Set if logs are forced to disk.
 
spring.jta.bitronix.properties.graceful-shutdown-interval=60 # Maximum amount of seconds the TM will wait for transactions to get done before aborting them at shutdown time.
 
spring.jta.bitronix.properties.jndi-transaction-synchronization-registry-name= # JNDI name of the TransactionSynchronizationRegistry.
 
spring.jta.bitronix.properties.jndi-user-transaction-name= # JNDI name of the UserTransaction.
 
spring.jta.bitronix.properties.journal=disk # Name of the journal. Can be 'disk', 'null' or a class name.
 
spring.jta.bitronix.properties.log-part1-filename=btm1.tlog # Name of the first fragment of the journal.
 
spring.jta.bitronix.properties.log-part2-filename=btm2.tlog # Name of the second fragment of the journal.
 
spring.jta.bitronix.properties.max-log-size-in-mb=2 # Maximum size in megabytes of the journal fragments.
 
spring.jta.bitronix.properties.resource-configuration-filename= # ResourceLoader configuration file name.
 
spring.jta.bitronix.properties.server-id= # ASCII ID that must uniquely identify this TM instance. Default to the machine's IP address.
 
spring.jta.bitronix.properties.skip-corrupted-logs=false # Skip corrupted transactions log entries.
 
spring.jta.bitronix.properties.warn-about-zero-resource-transaction=true # Log a warning for transactions executed without a single enlisted resource.
 
 
 
# NARAYANA (NarayanaProperties)
 
spring.jta.narayana.default-timeout=60 # Transaction timeout in seconds.
 
spring.jta.narayana.expiry-scanners=com.arjuna.ats.internal.arjuna.recovery.ExpiredTransactionStatusManagerScanner # Comma-separated list of expiry scanners.
 
spring.jta.narayana.log-dir= # Transaction object store directory.
 
spring.jta.narayana.one-phase-commit=true # Enable one phase commit optimisation.
 
spring.jta.narayana.periodic-recovery-period=120 # Interval in which periodic recovery scans are performed in seconds.
 
spring.jta.narayana.recovery-backoff-period=10 # Back off period between first and second phases of the recovery scan in seconds.
 
spring.jta.narayana.recovery-db-pass= # Database password to be used by recovery manager.
 
spring.jta.narayana.recovery-db-user= # Database username to be used by recovery manager.
 
spring.jta.narayana.recovery-jms-pass= # JMS password to be used by recovery manager.
 
spring.jta.narayana.recovery-jms-user= # JMS username to be used by recovery manager.
 
spring.jta.narayana.recovery-modules= # Comma-separated list of recovery modules.
 
spring.jta.narayana.transaction-manager-id=1 # Unique transaction manager id.
 
spring.jta.narayana.xa-resource-orphan-filters= # Comma-separated list of orphan filters.
 
 
 
# EMBEDDED MONGODB (EmbeddedMongoProperties)
 
spring.mongodb.embedded.features=SYNC_DELAY # Comma-separated list of features to enable.
 
spring.mongodb.embedded.storage.database-dir= # Directory used for data storage.
 
spring.mongodb.embedded.storage.oplog-size= # Maximum size of the oplog in megabytes.
 
spring.mongodb.embedded.storage.repl-set-name= # Name of the replica set.
 
spring.mongodb.embedded.version=2.6.10 # Version of Mongo to use.
 
 
 
# REDIS (RedisProperties)
 
spring.redis.cluster.max-redirects= # Maximum number of redirects to follow when executing commands across the cluster.
 
spring.redis.cluster.nodes= # Comma-separated list of "host:port" pairs to bootstrap from.
 
spring.redis.database=0 # Database index used by the connection factory.
 
spring.redis.host=localhost # Redis server host.
 
spring.redis.password= # Login password of the redis server.
 
spring.redis.pool.max-active=8 # Max number of connections that can be allocated by the pool at a given time. Use a negative value for no limit.
 
spring.redis.pool.max-idle=8 # Max number of "idle" connections in the pool. Use a negative value to indicate an unlimited number of idle connections.
 
spring.redis.pool.max-wait=-1 # Maximum amount of time (in milliseconds) a connection allocation should block before throwing an exception when the pool is exhausted. Use a negative value to block indefinitely.
 
spring.redis.pool.min-idle=0 # Target for the minimum number of idle connections to maintain in the pool. This setting only has an effect if it is positive.
 
spring.redis.port=6379 # Redis server port.
 
spring.redis.sentinel.master= # Name of Redis server.
 
spring.redis.sentinel.nodes= # Comma-separated list of host:port pairs.
 
spring.redis.timeout=0 # Connection timeout in milliseconds.
 
 
 
 
 
# ----------------------------------------
 
# INTEGRATION PROPERTIES
 
# ----------------------------------------
 
 
 
# ACTIVEMQ (ActiveMQProperties)
 
spring.activemq.broker-url= # URL of the ActiveMQ broker. Auto-generated by default. For instance `tcp://localhost:61616`
 
spring.activemq.in-memory=true # Specify if the default broker URL should be in memory. Ignored if an explicit broker has been specified.
 
spring.activemq.password= # Login password of the broker.
 
spring.activemq.user= # Login user of the broker.
 
spring.activemq.packages.trust-all=false # Trust all packages.
 
spring.activemq.packages.trusted= # Comma-separated list of specific packages to trust (when not trusting all packages).
 
spring.activemq.pool.configuration.*= # See PooledConnectionFactory.
 
spring.activemq.pool.enabled=false # Whether a PooledConnectionFactory should be created instead of a regular ConnectionFactory.
 
spring.activemq.pool.expiry-timeout=0 # Connection expiration timeout in milliseconds.
 
spring.activemq.pool.idle-timeout=30000 # Connection idle timeout in milliseconds.
 
spring.activemq.pool.max-connections=1 # Maximum number of pooled connections.
 
 
 
# ARTEMIS (ArtemisProperties)
 
spring.artemis.embedded.cluster-password= # Cluster password. Randomly generated on startup by default.
 
spring.artemis.embedded.data-directory= # Journal file directory. Not necessary if persistence is turned off.
 
spring.artemis.embedded.enabled=true # Enable embedded mode if the Artemis server APIs are available.
 
spring.artemis.embedded.persistent=false # Enable persistent store.
 
spring.artemis.embedded.queues= # Comma-separated list of queues to create on startup.
 
spring.artemis.embedded.server-id= # Server id. By default, an auto-incremented counter is used.
 
spring.artemis.embedded.topics= # Comma-separated list of topics to create on startup.
 
spring.artemis.host=localhost # Artemis broker host.
 
spring.artemis.mode= # Artemis deployment mode, auto-detected by default.
 
spring.artemis.password= # Login password of the broker.
 
spring.artemis.port=61616 # Artemis broker port.
 
spring.artemis.user= # Login user of the broker.
 
 
 
# SPRING BATCH (BatchProperties)
 
spring.batch.initializer.enabled= # Create the required batch tables on startup if necessary. Enabled automatically if no custom table prefix is set or if a custom schema is configured.
 
spring.batch.job.enabled=true # Execute all Spring Batch jobs in the context on startup.
 
spring.batch.job.names= # Comma-separated list of job names to execute on startup (For instance `job1,job2`). By default, all Jobs found in the context are executed.
 
spring.batch.schema=classpath:org/springframework/batch/core/[email protected]@[email protected]@.sql # Path to the SQL file to use to initialize the database schema.
 
spring.batch.table-prefix= # Table prefix for all the batch meta-data tables.
 
 
 
# HORNETQ (HornetQProperties)
 
spring.hornetq.embedded.cluster-password= # Cluster password. Randomly generated on startup by default.
 
spring.hornetq.embedded.data-directory= # Journal file directory. Not necessary if persistence is turned off.
 
spring.hornetq.embedded.enabled=true # Enable embedded mode if the HornetQ server APIs are available.
 
spring.hornetq.embedded.persistent=false # Enable persistent store.
 
spring.hornetq.embedded.queues= # Comma-separated list of queues to create on startup.
 
spring.hornetq.embedded.server-id= # Server id. By default, an auto-incremented counter is used.
 
spring.hornetq.embedded.topics= # Comma-separated list of topics to create on startup.
 
spring.hornetq.host=localhost # HornetQ broker host.
 
spring.hornetq.mode= # HornetQ deployment mode, auto-detected by default.
 
spring.hornetq.password= # Login password of the broker.
 
spring.hornetq.port=5445 # HornetQ broker port.
 
spring.hornetq.user= # Login user of the broker.
 
 
 
# JMS (JmsProperties)
 
spring.jms.jndi-name= # Connection factory JNDI name. When set, takes precedence to others connection factory auto-configurations.
 
spring.jms.listener.acknowledge-mode= # Acknowledge mode of the container. By default, the listener is transacted with automatic acknowledgment.
 
spring.jms.listener.auto-startup=true # Start the container automatically on startup.
 
spring.jms.listener.concurrency= # Minimum number of concurrent consumers.
 
spring.jms.listener.max-concurrency= # Maximum number of concurrent consumers.
 
spring.jms.pub-sub-domain=false # Specify if the default destination type is topic.
 
 
 
# RABBIT (RabbitProperties)
 
spring.rabbitmq.addresses= # Comma-separated list of addresses to which the client should connect.
 
spring.rabbitmq.cache.channel.checkout-timeout= # Number of milliseconds to wait to obtain a channel if the cache size has been reached.
 
spring.rabbitmq.cache.channel.size= # Number of channels to retain in the cache.
 
spring.rabbitmq.cache.connection.mode=CHANNEL # Connection factory cache mode.
 
spring.rabbitmq.cache.connection.size= # Number of connections to cache.
 
spring.rabbitmq.connection-timeout= # Connection timeout, in milliseconds; zero for infinite.
 
spring.rabbitmq.dynamic=true # Create an AmqpAdmin bean.
 
spring.rabbitmq.host=localhost # RabbitMQ host.
 
spring.rabbitmq.listener.acknowledge-mode= # Acknowledge mode of container.
 
spring.rabbitmq.listener.auto-startup=true # Start the container automatically on startup.
 
spring.rabbitmq.listener.concurrency= # Minimum number of consumers.
 
spring.rabbitmq.listener.default-requeue-rejected= # Whether or not to requeue delivery failures; default `true`.
 
spring.rabbitmq.listener.max-concurrency= # Maximum number of consumers.
 
spring.rabbitmq.listener.prefetch= # Number of messages to be handled in a single request. It should be greater than or equal to the transaction size (if used).
 
spring.rabbitmq.listener.retry.enabled=false # Whether or not publishing retries are enabled.
 
spring.rabbitmq.listener.retry.initial-interval=1000 # Interval between the first and second attempt to deliver a message.
 
spring.rabbitmq.listener.retry.max-attempts=3 # Maximum number of attempts to deliver a message.
 
spring.rabbitmq.listener.retry.max-interval=10000 # Maximum interval between attempts.
 
spring.rabbitmq.listener.retry.multiplier=1.0 # A multiplier to apply to the previous delivery retry interval.
 
spring.rabbitmq.listener.retry.stateless=true # Whether or not retry is stateless or stateful.
 
spring.rabbitmq.listener.transaction-size= # Number of messages to be processed in a transaction. For best results it should be less than or equal to the prefetch count.
 
spring.rabbitmq.password= # Login to authenticate against the broker.
 
spring.rabbitmq.port=5672 # RabbitMQ port.
 
spring.rabbitmq.publisher-confirms=false # Enable publisher confirms.
 
spring.rabbitmq.publisher-returns=false # Enable publisher returns.
 
spring.rabbitmq.requested-heartbeat= # Requested heartbeat timeout, in seconds; zero for none.
 
spring.rabbitmq.ssl.enabled=false # Enable SSL support.
 
spring.rabbitmq.ssl.key-store= # Path to the key store that holds the SSL certificate.
 
spring.rabbitmq.ssl.key-store-password= # Password used to access the key store.
 
spring.rabbitmq.ssl.trust-store= # Trust store that holds SSL certificates.
 
spring.rabbitmq.ssl.trust-store-password= # Password used to access the trust store.
 
spring.rabbitmq.ssl.algorithm= # SSL algorithm to use. By default configure by the rabbit client library.
 
spring.rabbitmq.template.mandatory=false # Enable mandatory messages.
 
spring.rabbitmq.template.receive-timeout=0 # Timeout for `receive()` methods.
 
spring.rabbitmq.template.reply-timeout=5000 # Timeout for `sendAndReceive()` methods.
 
spring.rabbitmq.template.retry.enabled=false # Set to true to enable retries in the `RabbitTemplate`.
 
spring.rabbitmq.template.retry.initial-interval=1000 # Interval between the first and second attempt to publish a message.
 
spring.rabbitmq.template.retry.max-attempts=3 # Maximum number of attempts to publish a message.
 
spring.rabbitmq.template.retry.max-interval=10000 # Maximum number of attempts to publish a message.
 
spring.rabbitmq.template.retry.multiplier=1.0 # A multiplier to apply to the previous publishing retry interval.
 
spring.rabbitmq.username= # Login user to authenticate to the broker.
 
spring.rabbitmq.virtual-host= # Virtual host to use when connecting to the broker.
 
 
 
 
 
# ----------------------------------------
 
# ACTUATOR PROPERTIES
 
# ----------------------------------------
 
 
 
# ENDPOINTS (AbstractEndpoint subclasses)
 
endpoints.enabled=true # Enable endpoints.
 
endpoints.sensitive= # Default endpoint sensitive setting.
 
endpoints.actuator.enabled=true # Enable the endpoint.
 
endpoints.actuator.path= # Endpoint URL path.
 
endpoints.actuator.sensitive=false # Enable security on the endpoint.
 
endpoints.autoconfig.enabled= # Enable the endpoint.
 
endpoints.autoconfig.id= # Endpoint identifier.
 
endpoints.autoconfig.path= # Endpoint path.
 
endpoints.autoconfig.sensitive= # Mark if the endpoint exposes sensitive information.
 
endpoints.beans.enabled= # Enable the endpoint.
 
endpoints.beans.id= # Endpoint identifier.
 
endpoints.beans.path= # Endpoint path.
 
endpoints.beans.sensitive= # Mark if the endpoint exposes sensitive information.
 
endpoints.configprops.enabled= # Enable the endpoint.
 
endpoints.configprops.id= # Endpoint identifier.
 
endpoints.configprops.keys-to-sanitize=password,secret,key,token,.*credentials.*,vcap_services # Keys that should be sanitized. Keys can be simple strings that the property ends with or regex expressions.
 
endpoints.configprops.path= # Endpoint path.
 
endpoints.configprops.sensitive= # Mark if the endpoint exposes sensitive information.
 
endpoints.docs.curies.enabled=false # Enable the curie generation.
 
endpoints.docs.enabled=true # Enable actuator docs endpoint.
 
endpoints.docs.path=/docs #
 
endpoints.docs.sensitive=false #
 
endpoints.dump.enabled= # Enable the endpoint.
 
endpoints.dump.id= # Endpoint identifier.
 
endpoints.dump.path= # Endpoint path.
 
endpoints.dump.sensitive= # Mark if the endpoint exposes sensitive information.
 
endpoints.env.enabled= # Enable the endpoint.
 
endpoints.env.id= # Endpoint identifier.
 
endpoints.env.keys-to-sanitize=password,secret,key,token,.*credentials.*,vcap_services # Keys that should be sanitized. Keys can be simple strings that the property ends with or regex expressions.
 
endpoints.env.path= # Endpoint path.
 
endpoints.env.sensitive= # Mark if the endpoint exposes sensitive information.
 
endpoints.flyway.enabled= # Enable the endpoint.
 
endpoints.flyway.id= # Endpoint identifier.
 
endpoints.flyway.sensitive= # Mark if the endpoint exposes sensitive information.
 
endpoints.health.enabled= # Enable the endpoint.
 
endpoints.health.id= # Endpoint identifier.
 
endpoints.health.mapping.*= # Mapping of health statuses to HttpStatus codes. By default, registered health statuses map to sensible defaults (i.e. UP maps to 200).
 
endpoints.health.path= # Endpoint path.
 
endpoints.health.sensitive= # Mark if the endpoint exposes sensitive information.
 
endpoints.health.time-to-live=1000 # Time to live for cached result, in milliseconds.
 
endpoints.heapdump.enabled= # Enable the endpoint.
 
endpoints.heapdump.path= # Endpoint path.
 
endpoints.heapdump.sensitive= # Mark if the endpoint exposes sensitive information.
 
endpoints.hypermedia.enabled=false # Enable hypermedia support for endpoints.
 
endpoints.info.enabled= # Enable the endpoint.
 
endpoints.info.id= # Endpoint identifier.
 
endpoints.info.path= # Endpoint path.
 
endpoints.info.sensitive= # Mark if the endpoint exposes sensitive information.
 
endpoints.jolokia.enabled=true # Enable Jolokia endpoint.
 
endpoints.jolokia.path=/jolokia # Endpoint URL path.
 
endpoints.jolokia.sensitive=true # Enable security on the endpoint.
 
endpoints.liquibase.enabled= # Enable the endpoint.
 
endpoints.liquibase.id= # Endpoint identifier.
 
endpoints.liquibase.sensitive= # Mark if the endpoint exposes sensitive information.
 
endpoints.logfile.enabled=true # Enable the endpoint.
 
endpoints.logfile.external-file= # External Logfile to be accessed.
 
endpoints.logfile.path=/logfile # Endpoint URL path.
 
endpoints.logfile.sensitive=true # Enable security on the endpoint.
 
endpoints.mappings.enabled= # Enable the endpoint.
 
endpoints.mappings.id= # Endpoint identifier.
 
endpoints.mappings.path= # Endpoint path.
 
endpoints.mappings.sensitive= # Mark if the endpoint exposes sensitive information.
 
endpoints.metrics.enabled= # Enable the endpoint.
 
endpoints.metrics.filter.enabled=true # Enable the metrics servlet filter.
 
endpoints.metrics.filter.gauge-submissions=merged # Http filter gauge submissions (merged, per-http-method)
 
endpoints.metrics.filter.counter-submissions=merged # Http filter counter submissions (merged, per-http-method)
 
endpoints.metrics.id= # Endpoint identifier.
 
endpoints.metrics.path= # Endpoint path.
 
endpoints.metrics.sensitive= # Mark if the endpoint exposes sensitive information.
 
endpoints.shutdown.enabled= # Enable the endpoint.
 
endpoints.shutdown.id= # Endpoint identifier.
 
endpoints.shutdown.path= # Endpoint path.
 
endpoints.shutdown.sensitive= # Mark if the endpoint exposes sensitive information.
 
endpoints.trace.enabled= # Enable the endpoint.
 
endpoints.trace.id= # Endpoint identifier.
 
endpoints.trace.path= # Endpoint path.
 
endpoints.trace.sensitive= # Mark if the endpoint exposes sensitive information.
 
 
 
# ENDPOINTS CORS CONFIGURATION (EndpointCorsProperties)
 
endpoints.cors.allow-credentials= # Set whether credentials are supported. When not set, credentials are not supported.
 
endpoints.cors.allowed-headers= # Comma-separated list of headers to allow in a request. '*' allows all headers.
 
endpoints.cors.allowed-methods=GET # Comma-separated list of methods to allow. '*' allows all methods.
 
endpoints.cors.allowed-origins= # Comma-separated list of origins to allow. '*' allows all origins. When not set, CORS support is disabled.
 
endpoints.cors.exposed-headers= # Comma-separated list of headers to include in a response.
 
endpoints.cors.max-age=1800 # How long, in seconds, the response from a pre-flight request can be cached by clients.
 
 
 
# JMX ENDPOINT (EndpointMBeanExportProperties)
 
endpoints.jmx.domain= # JMX domain name. Initialized with the value of 'spring.jmx.default-domain' if set.
 
endpoints.jmx.enabled=true # Enable JMX export of all endpoints.
 
endpoints.jmx.static-names= # Additional static properties to append to all ObjectNames of MBeans representing Endpoints.
 
endpoints.jmx.unique-names=false # Ensure that ObjectNames are modified in case of conflict.
 
 
 
# JOLOKIA (JolokiaProperties)
 
jolokia.config.*= # See Jolokia manual
 
 
 
# MANAGEMENT HTTP SERVER (ManagementServerProperties)
 
management.add-application-context-header=true # Add the "X-Application-Context" HTTP header in each response.
 
management.address= # Network address that the management endpoints should bind to.
 
management.context-path= # Management endpoint context-path. For instance `/actuator`
 
management.port= # Management endpoint HTTP port. Uses the same port as the application by default. Configure a different port to use management-specific SSL.
 
management.security.enabled=true # Enable security.
 
management.security.roles=ADMIN # Comma-separated list of roles that can access the management endpoint.
 
management.security.sessions=stateless # Session creating policy to use (always, never, if_required, stateless).
 
management.ssl.ciphers= # Supported SSL ciphers. Requires a custom management.port.
 
management.ssl.client-auth= # Whether client authentication is wanted ("want") or needed ("need"). Requires a trust store. Requires a custom management.port.
 
management.ssl.enabled= # Enable SSL support. Requires a custom management.port.
 
management.ssl.enabled-protocols= # Enabled SSL protocols. Requires a custom management.port.
 
management.ssl.key-alias= # Alias that identifies the key in the key store. Requires a custom management.port.
 
management.ssl.key-password= # Password used to access the key in the key store. Requires a custom management.port.
 
management.ssl.key-store= # Path to the key store that holds the SSL certificate (typically a jks file). Requires a custom management.port.
 
management.ssl.key-store-password= # Password used to access the key store. Requires a custom management.port.
 
management.ssl.key-store-provider= # Provider for the key store. Requires a custom management.port.
 
management.ssl.key-store-type= # Type of the key store. Requires a custom management.port.
 
management.ssl.protocol=TLS # SSL protocol to use. Requires a custom management.port.
 
management.ssl.trust-store= # Trust store that holds SSL certificates. Requires a custom management.port.
 
management.ssl.trust-store-password= # Password used to access the trust store. Requires a custom management.port.
 
management.ssl.trust-store-provider= # Provider for the trust store. Requires a custom management.port.
 
management.ssl.trust-store-type= # Type of the trust store. Requires a custom management.port.
 
 
 
# HEALTH INDICATORS (previously health.*)
 
management.health.db.enabled=true # Enable database health check.
 
management.health.defaults.enabled=true # Enable default health indicators.
 
management.health.diskspace.enabled=true # Enable disk space health check.
 
management.health.diskspace.path= # Path used to compute the available disk space.
 
management.health.diskspace.threshold=0 # Minimum disk space that should be available, in bytes.
 
management.health.elasticsearch.enabled=true # Enable elasticsearch health check.
 
management.health.elasticsearch.indices= # Comma-separated index names.
 
management.health.elasticsearch.response-timeout=100 # The time, in milliseconds, to wait for a response from the cluster.
 
management.health.jms.enabled=true # Enable JMS health check.
 
management.health.mail.enabled=true # Enable Mail health check.
 
management.health.mongo.enabled=true # Enable MongoDB health check.
 
management.health.rabbit.enabled=true # Enable RabbitMQ health check.
 
management.health.redis.enabled=true # Enable Redis health check.
 
management.health.solr.enabled=true # Enable Solr health check.
 
management.health.status.order=DOWN, OUT_OF_SERVICE, UP, UNKNOWN # Comma-separated list of health statuses in order of severity.
 
 
 
# INFO CONTRIBUTORS (InfoContributorProperties)
 
management.info.build.enabled=true # Enable build info.
 
management.info.defaults.enabled=true # Enable default info contributors.
 
management.info.env.enabled=true # Enable environment info.
 
management.info.git.enabled=true # Enable git info.
 
management.info.git.mode=simple # Mode to use to expose git information.
 
 
 
# REMOTE SHELL (ShellProperties)
 
management.shell.auth.type=simple # Authentication type. Auto-detected according to the environment.
 
management.shell.auth.jaas.domain=my-domain # JAAS domain.
 
management.shell.auth.key.path= # Path to the authentication key. This should point to a valid ".pem" file.
 
management.shell.auth.simple.user.name=user # Login user.
 
management.shell.auth.simple.user.password= # Login password.
 
management.shell.auth.spring.roles=ADMIN # Comma-separated list of required roles to login to the CRaSH console.
 
management.shell.command-path-patterns=classpath*:/commands/**,classpath*:/crash/commands/** # Patterns to use to look for commands.
 
management.shell.command-refresh-interval=-1 # Scan for changes and update the command if necessary (in seconds).
 
management.shell.config-path-patterns=classpath*:/crash/* # Patterns to use to look for configurations.
 
management.shell.disabled-commands=jpa*,jdbc*,jndi* # Comma-separated list of commands to disable.
 
management.shell.disabled-plugins= # Comma-separated list of plugins to disable. Certain plugins are disabled by default based on the environment.
 
management.shell.ssh.auth-timeout = # Number of milliseconds after user will be prompted to login again.
 
management.shell.ssh.enabled=true # Enable CRaSH SSH support.
 
management.shell.ssh.idle-timeout = # Number of milliseconds after which unused connections are closed.
 
management.shell.ssh.key-path= # Path to the SSH server key.
 
management.shell.ssh.port=2000 # SSH port.
 
management.shell.telnet.enabled=false # Enable CRaSH telnet support. Enabled by default if the TelnetPlugin is  available.
 
management.shell.telnet.port=5000 # Telnet port.
 
 
 
# TRACING (TraceProperties)
 
management.trace.include=request-headers,response-headers,cookies,errors # Items to be included in the trace.
 
 
 
# METRICS EXPORT (MetricExportProperties)
 
spring.metrics.export.aggregate.key-pattern= # Pattern that tells the aggregator what to do with the keys from the source repository.
 
spring.metrics.export.aggregate.prefix= # Prefix for global repository if active.
 
spring.metrics.export.delay-millis=5000 # Delay in milliseconds between export ticks. Metrics are exported to external sources on a schedule with this delay.
 
spring.metrics.export.enabled=true # Flag to enable metric export (assuming a MetricWriter is available).
 
spring.metrics.export.excludes= # List of patterns for metric names to exclude. Applied after the includes.
 
spring.metrics.export.includes= # List of patterns for metric names to include.
 
spring.metrics.export.redis.key=keys.spring.metrics # Key for redis repository export (if active).
 
spring.metrics.export.redis.prefix=spring.metrics # Prefix for redis repository if active.
 
spring.metrics.export.send-latest= # Flag to switch off any available optimizations based on not exporting unchanged metric values.
 
spring.metrics.export.statsd.host= # Host of a statsd server to receive exported metrics.
 
spring.metrics.export.statsd.port=8125 # Port of a statsd server to receive exported metrics.
 
spring.metrics.export.statsd.prefix= # Prefix for statsd exported metrics.
 
spring.metrics.export.triggers.*= # Specific trigger properties per MetricWriter bean name.
 
 
 
 
 
# ----------------------------------------
 
# DEVTOOLS PROPERTIES
 
# ----------------------------------------
 
 
 
# DEVTOOLS (DevToolsProperties)
 
spring.devtools.livereload.enabled=true # Enable a livereload.com compatible server.
 
spring.devtools.livereload.port=35729 # Server port.
 
spring.devtools.restart.additional-exclude= # Additional patterns that should be excluded from triggering a full restart.
 
spring.devtools.restart.additional-paths= # Additional paths to watch for changes.
 
spring.devtools.restart.enabled=true # Enable automatic restart.
 
spring.devtools.restart.exclude=META-INF/maven/**,META-INF/resources/**,resources/**,static/**,public/**,templates/**,**/*Test.class,**/*Tests.class,git.properties # Patterns that should be excluded from triggering a full restart.
 
spring.devtools.restart.poll-interval=1000 # Amount of time (in milliseconds) to wait between polling for classpath changes.
 
spring.devtools.restart.quiet-period=400 # Amount of quiet time (in milliseconds) required without any classpath changes before a restart is triggered.
 
spring.devtools.restart.trigger-file= # Name of a specific file that when changed will trigger the restart check. If not specified any classpath file change will trigger the restart.
 
 
 
# REMOTE DEVTOOLS (RemoteDevToolsProperties)
 
spring.devtools.remote.context-path=/.~~spring-boot!~ # Context path used to handle the remote connection.
 
spring.devtools.remote.debug.enabled=true # Enable remote debug support.
 
spring.devtools.remote.debug.local-port=8000 # Local remote debug server port.
 
spring.devtools.remote.proxy.host= # The host of the proxy to use to connect to the remote application.
 
spring.devtools.remote.proxy.port= # The port of the proxy to use to connect to the remote application.
 
spring.devtools.remote.restart.enabled=true # Enable remote restart.
 
spring.devtools.remote.secret= # A shared secret required to establish a connection (required to enable remote support).
 
spring.devtools.remote.secret-header-name=X-AUTH-TOKEN # HTTP header used to transfer the shared secret.
--------------------- 
作者:cnn0314 
來源:CSDN 
原文:https://blog.csdn.net/m0_37106742/article/details/64438892 
版權聲明:本文為博主原創文章,轉載請附上博文鏈接!
捕魚駕到 天涯明月刀ol