SpringBoot和SSM常用配置

我的文档风格:

一、Springboot配置:

/**
 * *************************************
 *    Copyright (c) 2018 feiyan.com
 *         All rights reserved.
 * *************************************
 * *************************************
 *
 * @author : ${USER}
 * @project : ${PROJECT_NAME}
 * @package : ${PACKAGE_NAME}
 * @date : Created in ${DATE} ${TIME}
 * @since : JDK 1.8
 * @version : 1.0
 * @see : 
 * @modified By: ${USER}
 * @description : 
 */

1.maven设置仓库地址:

~/.m2/setting.xml文件设置

<?xml version="1.0" ?>
<settings>
	<profiles>
		<profile>
			<id>nexus</id>
			<repositories>
				<repository>
					<id>nexus</id>
					<url>http://central</url>
					<releases>
						<enabled>true</enabled>
					</releases>
					<snapshots>
						<enabled>false</enabled>
					</snapshots>
				</repository>
			</repositories>
			<pluginRepositories>
				<pluginRepository>
					<id>nexus</id>
					<url>http://central</url>
					<releases>
						<enabled>true</enabled>
					</releases>
					<snapshots>
						<enabled>false</enabled>
					</snapshots>
				</pluginRepository>
			</pluginRepositories>
		</profile>
	</profiles>
	<activeProfiles>
		<activeProfile>nexus</activeProfile>
	</activeProfiles>
	<mirrors>
		<mirror>
			<id>nexus</id>
			<url>http://maven.aliyun.com/nexus/content/groups/public</url>
			<!--<url>http://192.168.10.240:8081/repository/maven-public/</url>-->
			<mirrorOf>external:*</mirrorOf>
		</mirror>
	</mirrors>
</settings>

2.springboot项目配置pox.xml依赖 :

<?xml version="1.0" encoding="UTF-8"?>
<!--suppress ALL -->
<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>

    <groupId>com.westos</groupId>
    <artifactId>springboot</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>jar</packaging>

    <name>springboot</name>
    <description>Demo project for Spring Boot</description>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.1.0.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <java.version>1.8</java.version>
        <springboot.version>2.1.0.RELEASE</springboot.version>
        <mysql.version>8.0.12</mysql.version>
        <druid.version>1.1.7</druid.version>
        <mybatis.version>1.3.2</mybatis.version>
        <mongodb.version>3.2.2</mongodb.version>
        <swagger2.version>2.2.2</swagger2.version>
    </properties>


    <!-- 指定Maven仓库 -->
    <repositories>
        <!-- oschina的maven仓库 -->
        <repository>
            <id>oschinaRepository</id>
            <name>local private nexus</name>
            <url>http://maven.oschina.net/content/groups/public/</url>
            <releases>
                <enabled>true</enabled>
            </releases>
            <snapshots>
                <enabled>true</enabled>
            </snapshots>
        </repository>

        <!-- 官方maven仓库 -->
        <!--
        <repository>
            <id>maven</id>
            <name>Maven Repository Switchboard</name>
            <layout>default</layout>
            <url>http://repo1.maven.org/maven2</url>
            <snapshots>
                <enabled>true</enabled>
            </snapshots>
        </repository>
        -->
    </repositories>

    <!-- 指定maven plugin仓库 -->
    <pluginRepositories>
        <!-- oschina的maven plugin仓库 -->
        <pluginRepository>
            <id>oschinaPluginRepository</id>
            <name>local private nexus</name>
            <url>http://maven.oschina.net/content/groups/public/</url>
            <releases>
                <enabled>true</enabled>
            </releases>
            <snapshots>
                <enabled>false</enabled>
            </snapshots>
        </pluginRepository>
    </pluginRepositories>


    <dependencies>
        <!-- springboot 基础包 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
        </dependency>
        <!-- springboot 测试包 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-aop</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-cache</artifactId>
        </dependency>
        <!-- 缓存EhCache -->
        <dependency>
            <groupId>net.sf.ehcache</groupId>
            <artifactId>ehcache</artifactId>
        </dependency>
        <!-- 监控端点actuator -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-jdbc</artifactId>
        </dependency>
        <!-- springboot 安全控制Spring Security -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-security</artifactId>
        </dependency>
        <!-- springboot web开发thymeleaf模板 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-thymeleaf</artifactId>
        </dependency>
        <!-- springboot web开发freemarker模板 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-freemarker</artifactId>
        </dependency>
        <!-- springboot web开发velocity模板 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-velocity</artifactId>
        </dependency>

        <!-- 让thymeleaf 在解析html时能采用不严格的语法 -->
        <dependency>
            <groupId>net.sourceforge.nekohtml</groupId>
            <artifactId>nekohtml</artifactId>
            <version>1.9.22</version>
        </dependency>
        <!-- springboot web包 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
            <exclusions>
                <exclusion>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-starter-logging</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-log4j2 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-log4j2</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web-services</artifactId>
        </dependency>
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>${mybatis.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.session</groupId>
            <artifactId>spring-session-jdbc</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
            <scope>runtime</scope>
        </dependency>
        <!-- Spring-data-jpa -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-jpa</artifactId>
        </dependency>

        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>${mysql.version}</version>
            <scope>runtime</scope>
        </dependency>
        <!-- NoSQL数据库之MongoDB -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-mongodb</artifactId>
        </dependency>
        <!-- mongodb driver -->
        <dependency>
            <groupId>org.mongodb</groupId>
            <artifactId>mongodb-driver</artifactId>
            <version>${mongodb.version}</version>
        </dependency>
        <!-- Redis -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-redis</artifactId>
        </dependency>


        <!-- springboot swagger2包 -->
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger2</artifactId>
            <version>${swagger2.version}</version>
        </dependency>
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger-ui</artifactId>
            <version>${swagger2.version}</version>
        </dependency>


        <!--  加入连接池实现 druid -->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
            <version>${druid.version}</version>
        </dependency>
        <!-- 加入注解处理器, 让编写*.properties 文件时有提示 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-configuration-processor</artifactId>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>

        <!-- https://mvnrepository.com/artifact/commons-io/commons-io -->
        <dependency>
            <groupId>commons-io</groupId>
            <artifactId>commons-io</artifactId>
            <version>2.4</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/commons-dbutils/commons-dbutils -->
        <dependency>
            <groupId>commons-dbutils</groupId>
            <artifactId>commons-dbutils</artifactId>
            <version>1.6</version>
        </dependency>

        <!-- https://mvnrepository.com/artifact/org.apache.commons/commons-pool2 -->
        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-pool2</artifactId>
            <version>2.6.0</version>
        </dependency>

        <!-- 加入javamelody依赖包 -->
        <dependency>
            <groupId>net.bull.javamelody</groupId>
            <artifactId>javamelody-core</artifactId>
            <version>1.47.0</version>
        </dependency>


        <dependency>
            <groupId>org.springframework.security</groupId>
            <artifactId>spring-security-test</artifactId>
            <scope>test</scope>
        </dependency>
        <!-- springboot工具 修改代码后不需重启即生效 -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>springloaded</artifactId>
        </dependency>

    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                    <fork>true</fork><!-- 如果没有该项配置,这个devtools不会起作用,即应用不会restart -->
                </configuration>
            </plugin>
        </plugins>
    </build>


</project>

pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<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/maven-v4_0_0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.westos</groupId>
    <artifactId>SSM2</artifactId>
    <version>1.0-SNAPSHOT</version>
    <packaging>war</packaging>

    <name>SSM2 Maven Webapp</name>
    <!-- FIXME change it to the project's website -->
    <url>http://www.example.com</url>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <maven.compiler.source>1.7</maven.compiler.source>
        <maven.compiler.target>1.7</maven.compiler.target>
        <junit.version>4.12</junit.version>
        <spring.version>4.3.17.RELEASE</spring.version>
        <mybatis.version>3.4.5</mybatis.version>
        <mybatis.spring.version>1.3.1</mybatis.spring.version>
        <druid.version>1.1.7</druid.version>
        <mysql.version>8.0.12</mysql.version>
        <jstl.version>1.2</jstl.version>
        <servlet.api.version>3.1.0</servlet.api.version>
        <servlet.jsp.api.version>2.2.1</servlet.jsp.api.version>
        <pagehelper.version>4.0.0</pagehelper.version>
        <jackson.databind.version>2.9.1</jackson.databind.version>
        <fastjson.version>1.2.47</fastjson.version>
        <logback.classic.version>1.2.3</logback.classic.version>
        <slf4j.version>1.7.25</slf4j.version>
        <lombok.version>1.18.2</lombok.version>
        <aspectjrt.version>1.8.9</aspectjrt.version>
    </properties>

    <dependencies>
        <!--单元测试-->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>${junit.version}</version>
            <scope>test</scope>
        </dependency>

        <!--mysql驱动-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>${mysql.version}</version>
        </dependency>
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
            <version>${druid.version}</version>
        </dependency>

        <!-- spring -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-jdbc</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-web</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-aop</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-aspects</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-test</artifactId>
            <version>${spring.version}</version>
        </dependency>

        <!-- 第三方 aop依赖 aspectJ -->
        <dependency>
            <groupId>org.aspectj</groupId>
            <artifactId>aspectjweaver</artifactId>
            <version>${aspectjrt.version}</version>
        </dependency>
        <dependency>
            <groupId>org.aspectj</groupId>
            <artifactId>aspectjrt</artifactId>
            <version>${aspectjrt.version}</version>
        </dependency>

        <!-- MyBatis -->
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>${mybatis.version}</version>
        </dependency>
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis-spring</artifactId>
            <version>${mybatis.spring.version}</version>
        </dependency>


        <!-- pageHelper分页插件 -->
        <dependency>
            <groupId>com.github.pagehelper</groupId>
            <artifactId>pagehelper</artifactId>
            <version>${pagehelper.version}</version>
        </dependency>

        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
            <version>${servlet.api.version}</version>
        </dependency>
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>jstl</artifactId>
            <version>${jstl.version}</version>
        </dependency>

        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-databind</artifactId>
            <version>${jackson.databind.version}</version>
        </dependency>
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>${fastjson.version}</version>
        </dependency>

        <!--日志接口-->
        <dependency>
            <groupId>ch.qos.logback</groupId>
            <artifactId>logback-classic</artifactId>
            <version>${logback.classic.version}</version>
        </dependency>
        <!-- 日志桥接 -->
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>jcl-over-slf4j</artifactId>
            <version>${slf4j.version}</version>
        </dependency>

        <!-- https://mvnrepository.com/artifact/org.projectlombok/lombok -->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>${lombok.version}</version>
            <scope>provided</scope>
        </dependency>


        <!-- 文件上传(可选) -->
        <dependency>
            <groupId>commons-fileupload</groupId>
            <artifactId>commons-fileupload</artifactId>
            <version>1.3.3</version>
        </dependency>
    </dependencies>


    <build>
        <finalName>SSM2</finalName>

        <resources>
            <resource>
                <directory>${basedir}/src/main/java</directory>
                <includes>
                    <include>**/*.properties</include>
                    <include>**/*.xml</include>
                </includes>
            </resource>
            <resource>
                <directory>${basedir}/src/main/resources</directory>
            </resource>
        </resources>

        <pluginManagement><!-- lock down plugins versions to avoid using Maven defaults (may be moved to parent pom) -->
            <plugins>
                <plugin>
                    <artifactId>maven-clean-plugin</artifactId>
                    <version>3.0.0</version>
                </plugin>
                <!-- see http://maven.apache.org/ref/current/maven-core/default-bindings.html#Plugin_bindings_for_war_packaging -->
                <plugin>
                    <artifactId>maven-resources-plugin</artifactId>
                    <version>3.0.2</version>
                </plugin>
                <plugin>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <version>3.7.0</version>
                </plugin>
                <plugin>
                    <artifactId>maven-surefire-plugin</artifactId>
                    <version>2.20.1</version>
                </plugin>
                <plugin>
                    <artifactId>maven-war-plugin</artifactId>
                    <version>3.2.0</version>
                </plugin>
                <plugin>
                    <artifactId>maven-install-plugin</artifactId>
                    <version>2.5.2</version>
                </plugin>
                <plugin>
                    <artifactId>maven-deploy-plugin</artifactId>
                    <version>2.8.2</version>
                </plugin>
            </plugins>
        </pluginManagement>
    </build>
</project>

<?xml version="1.0" encoding="UTF-8"?>
<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>

    <groupId>com.westos</groupId>
    <artifactId>springboot</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>jar</packaging>

    <name>springboot</name>
    <description>Demo project for Spring Boot</description>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.1.0.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <java.version>1.8</java.version>
        <springboot.version>2.1.0.RELEASE</springboot.version>
        <mysql.version>8.0.12</mysql.version>
        <druid.version>1.1.7</druid.version>
        <mybatis.version>1.3.2</mybatis.version>
        <mongodb.version>3.2.2</mongodb.version>
        <swagger2.version>2.2.2</swagger2.version>
    </properties>


    <!-- 指定Maven仓库 -->
    <repositories>
        <!-- oschina的maven仓库 -->
        <repository>
            <id>oschinaRepository</id>
            <name>local private nexus</name>
            <url>http://maven.oschina.net/content/groups/public/</url>
            <releases>
                <enabled>true</enabled>
            </releases>
            <snapshots>
                <enabled>true</enabled>
            </snapshots>
        </repository>

        <!-- 官方maven仓库 -->
        <!--
        <repository>
            <id>maven</id>
            <name>Maven Repository Switchboard</name>
            <layout>default</layout>
            <url>http://repo1.maven.org/maven2</url>
            <snapshots>
                <enabled>true</enabled>
            </snapshots>
        </repository>
        -->
    </repositories>

    <!-- 指定maven plugin仓库 -->
    <pluginRepositories>
        <!-- oschina的maven plugin仓库 -->
        <pluginRepository>
            <id>oschinaPluginRepository</id>
            <name>local private nexus</name>
            <url>http://maven.oschina.net/content/groups/public/</url>
            <releases>
                <enabled>true</enabled>
            </releases>
            <snapshots>
                <enabled>false</enabled>
            </snapshots>
        </pluginRepository>
    </pluginRepositories>


    <dependencies>
        <!-- springboot 基础包 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
        </dependency>
        <!-- springboot 测试包 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-aop</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-cache</artifactId>
        </dependency>
        <!-- 缓存EhCache -->
        <dependency>
            <groupId>net.sf.ehcache</groupId>
            <artifactId>ehcache</artifactId>
        </dependency>
        <!-- 监控端点actuator -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-jdbc</artifactId>
        </dependency>
        <!-- springboot 安全控制Spring Security -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-security</artifactId>
        </dependency>
        <!-- springboot web开发thymeleaf模板 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-thymeleaf</artifactId>
        </dependency>
        <!-- springboot web开发freemarker模板 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-freemarker</artifactId>
        </dependency>
        <!-- springboot web开发velocity模板 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-velocity</artifactId>
        </dependency>

        <!-- 让thymeleaf 在解析html时能采用不严格的语法 -->
        <dependency>
            <groupId>net.sourceforge.nekohtml</groupId>
            <artifactId>nekohtml</artifactId>
            <version>1.9.22</version>
        </dependency>
        <!-- springboot web包 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
            <exclusions>
                <exclusion>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-starter-logging</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-log4j2 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-log4j2</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web-services</artifactId>
        </dependency>
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>${mybatis.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.session</groupId>
            <artifactId>spring-session-jdbc</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
            <scope>runtime</scope>
        </dependency>
        <!-- Spring-data-jpa -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-jpa</artifactId>
        </dependency>

        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>${mysql.version}</version>
            <scope>runtime</scope>
        </dependency>
        <!-- NoSQL数据库之MongoDB -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-mongodb</artifactId>
        </dependency>
        <!-- mongodb driver -->
        <dependency>
            <groupId>org.mongodb</groupId>
            <artifactId>mongodb-driver</artifactId>
            <version>${mongodb.version}</version>
        </dependency>
        <!-- Redis -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-redis</artifactId>
        </dependency>


        <!-- springboot swagger2包 -->
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger2</artifactId>
            <version>${swagger2.version}</version>
        </dependency>
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger-ui</artifactId>
            <version>${swagger2.version}</version>
        </dependency>


        <!--  加入连接池实现 druid -->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
            <version>${druid.version}</version>
        </dependency>
        <!-- 加入注解处理器, 让编写*.properties 文件时有提示 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-configuration-processor</artifactId>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>

        <!-- https://mvnrepository.com/artifact/commons-io/commons-io -->
        <dependency>
            <groupId>commons-io</groupId>
            <artifactId>commons-io</artifactId>
            <version>2.4</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/commons-dbutils/commons-dbutils -->
        <dependency>
            <groupId>commons-dbutils</groupId>
            <artifactId>commons-dbutils</artifactId>
            <version>1.6</version>
        </dependency>

        <!-- https://mvnrepository.com/artifact/org.apache.commons/commons-pool2 -->
        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-pool2</artifactId>
            <version>2.6.0</version>
        </dependency>

        <!-- 加入javamelody依赖包 -->
        <dependency>
            <groupId>net.bull.javamelody</groupId>
            <artifactId>javamelody-core</artifactId>
            <version>1.47.0</version>
        </dependency>


        <dependency>
            <groupId>org.springframework.security</groupId>
            <artifactId>spring-security-test</artifactId>
            <scope>test</scope>
        </dependency>
        <!-- springboot工具 修改代码后不需重启即生效 -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>springloaded</artifactId>
        </dependency>

    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                    <fork>true</fork><!-- 如果没有该项配置,这个devtools不会起作用,即应用不会restart -->
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>

pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<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">
    <parent>
        <artifactId>IOTCloud</artifactId>
        <groupId>xupt.gby</groupId>
        <version>1.0-SNAPSHOT</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>
    <packaging>jar</packaging>

    <artifactId>IOTCloud-domain</artifactId>
    <dependencies>
        <!-- J2EE支持 -->
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
            <scope>provided</scope>
        </dependency>

        <!-- Spring -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-core</artifactId>
            <exclusions>
                <exclusion>
                    <groupId>commons-logging</groupId>
                    <artifactId>commons-logging</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-beans</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-jdbc</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context-support</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-jms</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-aop</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-websocket</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-messaging</artifactId>
        </dependency>

        <!-- AOP支持 -->
        <dependency>
            <groupId>org.aspectj</groupId>
            <artifactId>aspectjrt</artifactId>
        </dependency>
        <dependency>
            <groupId>org.aspectj</groupId>
            <artifactId>aspectjweaver</artifactId>
        </dependency>

        <!-- mybatis核心包 -->
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
        </dependency>

        <!-- mybatis-spring包 -->
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis-spring</artifactId>
        </dependency>

        <!-- 阿里巴巴数据连接池 -->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
        </dependency>

        <!-- 日志 -->
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
        </dependency>
        <dependency>
            <groupId>ch.qos.logback</groupId>
            <artifactId>logback-core</artifactId>
        </dependency>
        <dependency>
            <groupId>ch.qos.logback</groupId>
            <artifactId>logback-classic</artifactId>
        </dependency>

        <!-- 日志桥接,Spring中commons-logging替换为logback -->
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>jcl-over-slf4j</artifactId>
        </dependency>


        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-lang3</artifactId>
        </dependency>

        <!-- Java发送邮件 -->
        <dependency>
            <groupId>javax.mail</groupId>
            <artifactId>mail</artifactId>
        </dependency>

        <!-- Json处理 -->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
        </dependency>

        <!-- Excel -->
        <dependency>
            <groupId>dom4j</groupId>
            <artifactId>dom4j</artifactId>
        </dependency>
        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi</artifactId>
            <exclusions>
                <exclusion>
                    <artifactId>commons-codec</artifactId>
                    <groupId>commons-codec</groupId>
                </exclusion>
            </exclusions>
        </dependency>

        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi-ooxml</artifactId>
        </dependency>

        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi-ooxml-schemas</artifactId>
        </dependency>
        <dependency>
            <groupId>jexcelapi</groupId>
            <artifactId>jxl</artifactId>
        </dependency>

        <!-- quartz定时任务 -->
        <dependency>
            <groupId>org.quartz-scheduler</groupId>
            <artifactId>quartz</artifactId>
        </dependency>

        <!-- activeMQ -->
        <!--  <dependency>
              <groupId>org.apache.activemq</groupId>
              <artifactId>activemq-client</artifactId>
        </dependency> -->
        <dependency>
            <groupId>org.apache.activemq</groupId>
            <artifactId>activemq-all</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.integration</groupId>
            <artifactId>spring-integration-mqtt</artifactId>
            <exclusions>
                <exclusion>
                    <groupId>org.eclipse.paho</groupId>
                    <artifactId>mqtt-client</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

        <dependency>
            <groupId>org.fusesource.mqtt-client</groupId>
            <artifactId>mqtt-client</artifactId>
        </dependency>


        <!-- zookeeper -->
        <dependency>
            <groupId>com.github.sgroschupf</groupId>
            <artifactId>zkclient</artifactId>
        </dependency>

        <!-- Swagger API文档 -->
        <dependency>
            <groupId>io.swagger</groupId>
            <artifactId>swagger-annotations</artifactId>
        </dependency>
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger2</artifactId>
        </dependency>
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger-ui</artifactId>
        </dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-annotations</artifactId>
        </dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-databind</artifactId>
        </dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-core</artifactId>
        </dependency>
        <dependency>
            <groupId>com.google.code.gson</groupId>
            <artifactId>gson</artifactId>
        </dependency>
        <dependency>
            <groupId>commons-fileupload</groupId>
            <artifactId>commons-fileupload</artifactId>
        </dependency>
        <dependency>
            <groupId>commons-codec</groupId>
            <artifactId>commons-codec</artifactId>
        </dependency>
        <dependency>
            <groupId>commons-io</groupId>
            <artifactId>commons-io</artifactId>
        </dependency>

        <dependency>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-dependency-plugin</artifactId>
        </dependency>

        <dependency>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
        </dependency>

        <!-- mina -->
        <dependency>
            <groupId>org.apache.mina</groupId>
            <artifactId>mina-integration-beans</artifactId>
        </dependency>

        <dependency>
            <groupId>org.apache.mina</groupId>
            <artifactId>mina-core</artifactId>
        </dependency>

        <dependency>
            <groupId>org.apache.mina</groupId>
            <artifactId>mina-integration-spring</artifactId>
            <version>1.1.7</version>
        </dependency>

        <dependency>
            <groupId>org.eclipse.californium</groupId>
            <artifactId>californium-core</artifactId>
            <version>1.0.4</version>
        </dependency>

        <dependency>
            <groupId>org.eclipse.paho</groupId>
            <artifactId>org.eclipse.paho.client.mqttv3</artifactId>
        </dependency>

        <!--<dependency>-->
            <!--<groupId>org.springframework.session</groupId>-->
            <!--<artifactId>spring-session-data-redis</artifactId>-->
            <!--<version>1.3.2.RELEASE</version>-->
        <!--</dependency>-->

        <dependency>
            <groupId>org.springframework.data</groupId>
            <artifactId>spring-data-redis</artifactId>
            <version>1.7.2.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>redis.clients</groupId>
            <artifactId>jedis</artifactId>
            <version>2.8.1</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-web</artifactId>
            <version>4.3.6.RELEASE</version>
        </dependency>

    </dependencies>
</project>

pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<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">
    <parent>
        <artifactId>IOTCloud</artifactId>
        <groupId>xupt.gby</groupId>
        <version>1.0-SNAPSHOT</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>
    <packaging>war</packaging>
    <artifactId>IOTCloud-provider</artifactId>


    <dependencies>
        <dependency>
            <groupId>xupt.gby</groupId>
            <artifactId>IOTCloud-biz</artifactId>
            <version>1.0-SNAPSHOT</version>
        </dependency>

        <!-- Jstl支持 -->
        <dependency>
            <groupId>jstl</groupId>
            <artifactId>jstl</artifactId>
        </dependency>

        <dependency>
            <groupId>javax.servlet.jsp.jstl</groupId>
            <artifactId>javax.servlet.jsp.jstl-api</artifactId>
            <version>1.2.1</version>
        </dependency>

        <dependency>
            <groupId>org.apache.taglibs</groupId>
            <artifactId>taglibs-standard-impl</artifactId>
            <version>1.2.5</version>
        </dependency>

        <dependency>
            <groupId>nz.ac.waikato.cms.weka</groupId>
            <artifactId>weka-stable</artifactId>
        </dependency>

        <!-- dubbo -->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>dubbo</artifactId>
            <exclusions>
                <exclusion>
                    <artifactId>spring</artifactId>
                    <groupId>org.springframework</groupId>
                </exclusion>
            </exclusions>
        </dependency>

        <!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-web -->
        <!--<dependency>-->
            <!--<groupId>org.springframework.boot</groupId>-->
            <!--<artifactId>spring-boot-starter-web</artifactId>-->
            <!--<version>2.0.4.RELEASE</version>-->
        <!--</dependency>-->


        <!-- Netty -->
        <dependency>
            <groupId>io.netty</groupId>
            <artifactId>netty-transport</artifactId>
        </dependency>
        <dependency>
            <groupId>io.netty</groupId>
            <artifactId>netty-handler</artifactId>
        </dependency>
        <dependency>
            <groupId>io.netty</groupId>
            <artifactId>netty-codec-http</artifactId>
        </dependency>

        <!-- spring boot -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
            <version>1.5.1.RELEASE</version>
            <scope>compile</scope>
            <exclusions>
                <exclusion>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-starter-logging</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-web</artifactId>
            <version>4.3.6.RELEASE</version>
        </dependency>
    </dependencies>

    <build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.3</version>
            <configuration>
                <excludes>
                </excludes>
                <source>${java.version}</source>
                <target>${java.version}</target>
            </configuration>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <version>2.18.1</version>
            <configuration>
                <testFailureIgnore>true</testFailureIgnore>
                <skip>true</skip>
            </configuration>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-deploy-plugin</artifactId>
            <version>2.8.2</version>
            <configuration>
                <skip>true</skip>
            </configuration>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-jar-plugin</artifactId>
            <version>2.6</version>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-resources-plugin</artifactId>
            <version>2.6</version>
            <configuration>
                <encoding>UTF-8</encoding>
            </configuration>
        </plugin>

        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-war-plugin</artifactId>
            <version>2.4</version>
            <configuration>
                <warSourceDirectory>src/main/webapp</warSourceDirectory>
                <webXml>src/main/webapp/WEB-INF/web.xml</webXml>
            </configuration>
        </plugin>

        <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>properties-maven-plugin</artifactId>
            <version>1.0.0</version>
        </plugin>

        <plugin>
            <groupId>org.apache.felix</groupId>
            <artifactId>maven-bundle-plugin</artifactId>
            <extensions>true</extensions>
        </plugin>

        <!--<plugin>-->
            <!--<groupId>org.springframework.boot</groupId>-->
            <!--<artifactId>spring-boot-maven-plugin</artifactId>-->
            <!--<version>1.5.1.RELEASE</version>-->
            <!--<configuration>-->
                <!--<layout>ZIP</layout>-->
            <!--</configuration>-->
            <!--<executions>-->
                <!--<execution>-->
                    <!--<goals>-->
                        <!--<goal>repackage</goal>-->
                    <!--</goals>-->
                <!--</execution>-->
            <!--</executions>-->
        <!--</plugin>-->

    </plugins>
    </build>

</project>

pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<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">
    <parent>
        <artifactId>IOTCloud</artifactId>
        <groupId>xupt.gby</groupId>
        <version>1.0-SNAPSHOT</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>
    <packaging>jar</packaging>

    <artifactId>IOTCloud-Web</artifactId>
    <dependencies>
        <dependency>
            <groupId>xupt.gby</groupId>
            <artifactId>IOTCloud-share</artifactId>
            <version>1.0-SNAPSHOT</version>
        </dependency>

        <dependency>
            <groupId>org.eclipse.californium</groupId>
            <artifactId>californium-core</artifactId>
            <version>1.0.4</version>
        </dependency>

        <dependency>
            <groupId>org.eclipse.paho</groupId>
            <artifactId>org.eclipse.paho.client.mqttv3</artifactId>
        </dependency>


        <!-- Jstl支持 -->
        <dependency>
            <groupId>jstl</groupId>
            <artifactId>jstl</artifactId>
        </dependency>

        <!-- dubbo -->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>dubbo</artifactId>
            <exclusions>
                <exclusion>
                    <artifactId>spring</artifactId>
                    <groupId>org.springframework</groupId>
                </exclusion>
            </exclusions>
        </dependency>

        <!-- Netty -->
        <dependency>
            <groupId>io.netty</groupId>
            <artifactId>netty-transport</artifactId>
        </dependency>
        <dependency>
            <groupId>io.netty</groupId>
            <artifactId>netty-handler</artifactId>
        </dependency>
        <dependency>
            <groupId>io.netty</groupId>
            <artifactId>netty-codec-http</artifactId>
        </dependency>
        <dependency>
            <groupId>commons-fileupload</groupId>
            <artifactId>commons-fileupload</artifactId>
        </dependency>

        <!-- spring boot -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
            <version>1.5.1.RELEASE</version>
            <exclusions>
                <exclusion>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-starter-logging</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-web</artifactId>
            <version>4.3.6.RELEASE</version>
        </dependency>
    </dependencies>
    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.felix</groupId>
                <artifactId>maven-bundle-plugin</artifactId>
                <extensions>true</extensions>
            </plugin>
        </plugins>
    </build>


</project>

logback.xml

<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true">

	<!-- 日志输出的目的地 ConsoleAppender 是将日志输出至控制台  -->
	<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
		<!--
			%d 时间格式
			%thread 线程
			%logger 类
			%-5level 级别  Error, Warn, Info, Debug, Trace
			%msg 日志具体内容
			%n 换行
		-->
		<encoder>
			<pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n
			</pattern>
		</encoder>
	</appender>

	<appender name="STDOUT_SIMPLE" class="ch.qos.logback.core.ConsoleAppender">
		<encoder>
			<pattern>%msg%n</pattern>
		</encoder>
	</appender>

	<!-- logger 规定了哪些包的日志需要输出 name="要输出日志的包名"-->
	<logger name="com.westos.springboot.mapper" level="debug" additivity="false">
		<appender-ref ref="STDOUT_SIMPLE" />
	</logger>

	<root level="warn">
		<appender-ref ref="STDOUT" />
	</root>
</configuration>

log4j.properties

### direct log messages to stdout and logFile###
log4j.rootCategory=INFO, stdout, logFile

# OpenSymphony Stuff
log4j.logger.com.opensymphony=INFO
log4j.logger.org.apache.struts2=INFO
log4j.logger.org.apache.commons=INFO

# Spring Stuff
log4j.logger.org.springframework=INFO
log4j.logger.org.springframework.oxm=INFO

###mybatis show sql###
log4j.logger.com.ibatis=debug
log4j.logger.com.ibatis.common.jdbc.SimpleDataSource=debug
log4j.logger.com.ibatis.common.jdbc.ScriptRunner=debug
log4j.logger.com.ibatis.sqlmap.engine.impl.SqlMapClientDelegate=debug

log4j.logger.java.sql.Connection=debug
log4j.logger.java.sql.Statement=debug
log4j.logger.java.sql.PreparedStatement=debug

log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=[\u65F6\u95F4\:%d{yyyy-MM-dd hh\:mm\:ss}] [\u7EA7\u522B\:%p] [\u7C7B\:%c]  [\u6D88\u606F\:%m] %n 

log4j.appender.logFile=org.apache.log4j.RollingFileAppender
log4j.appender.logFile.File=IOTCloud.log
log4j.appender.logFile.layout=org.apache.log4j.PatternLayout
log4j.appender.logFile.layout.ConversionPattern=[\u65F6\u95F4\:%d{yyyy-MM-dd hh\:mm\:ss}] [\u7EA7\u522B\:%p] [\u7C7B\:%c]  [\u6D88\u606F\:%m] %n 
log4j.appender.logFile.MaxFileSize = 5MB
log4j.appender.logFile.MaxBackupIndex =3

### druid sql ###
log4j.logger.druid.sql=warn,stdout
log4j.logger.druid.sql.DataSource=warn,stdout
log4j.logger.druid.sql.Connection=warn,stdout
log4j.logger.druid.sql.Statement=warn,stdout
log4j.logger.druid.sql.ResultSet=warn,stdout

log4j.appender.MINA=org.apache.log4j.ConsoleAppender
log4j.appender.MINA.layout=org.apache.log4j.PatternLayout
log4j.appender.MINA.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss}  %m%n

log4j2.xml

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN" packages="org.apache.logging.log4j.core,net.kencochrane.raven.log4j2">
    <Appenders>
        <Console name="Stdout" target="SYSTEM_OUT" follow="true">
            <PatternLayout pattern="[%date{yyyy-MM-dd HH:mm:ss.SSS}][%thread][%level][%class][%line]:%message%n" />
        </Console>
        <RollingFile name="AllLog" fileName="${jetty.logs}/all.log" filePattern="${jetty.logs}/all.log.%d{yyyy-MM-dd}.gz">
            <PatternLayout pattern="[%date{yyyy-MM-dd HH:mm:ss.SSS}][%thread][%level][%class][%line]:%message%n" />
            <Policies>
                <TimeBasedTriggeringPolicy />
            </Policies>
        </RollingFile>
        <RollingFile name="Error" fileName="${jetty.logs}/error.log" filePattern="${jetty.logs}/error.log.%d{yyyy-MM-dd}.gz">
            <ThresholdFilter level="ERROR" onMatch="ACCEPT" onMismatch="DENY" />
            <PatternLayout pattern="[%date{yyyy-MM-dd HH:mm:ss.SSS}][%thread][%level][%class][%line]:%message%n" />
            <Policies>
                <TimeBasedTriggeringPolicy />
            </Policies>
        </RollingFile>

        <RollingFile name="DB" fileName="${jetty.logs}/db.log" filePattern="${jetty.logs}/db.log.%d{yyyy-MM-dd}.gz">
            <ThresholdFilter level="ERROR" onMatch="ACCEPT" onMismatch="DENY" />
            <PatternLayout pattern="[%date{yyyy-MM-dd HH:mm:ss.SSS}][%thread][%level][%class][%line]:%message%n" />
            <Policies>
                <TimeBasedTriggeringPolicy />
            </Policies>
        </RollingFile>

        <RollingFile name="JMonitor" fileName="${jetty.logs}/jmonitor.log" filePattern="${jetty.logs}/jmonitor.log.%d{yyyy-MM-dd}.gz">
            <PatternLayout pattern="[%date{yyyy-MM-dd HH:mm:ss.SSS}][%thread][%level][%class][%line]:%message%n" />
            <Policies>
                <TimeBasedTriggeringPolicy />
            </Policies>
        </RollingFile>

        <RollingFile name="JMonitorStore" fileName="${jetty.logs}/jmonitor.logstore.log" filePattern="${jetty.logs}/jmonitor.logstore.log.%d{yyyy-MM-dd}.gz">
            <PatternLayout pattern="[%date{yyyy-MM-dd HH:mm:ss.SSS}][%thread][%level][%class][%line]:%message%n" />
            <Policies>
                <TimeBasedTriggeringPolicy />
            </Policies>
        </RollingFile>

        <RollingFile name="Xuanwu" fileName="${jetty.logs}/xuanwu.log"
                     filePattern="${jetty.logs}/xuanwu.log.%d{yyyy-MM-dd}.gz">
            <PatternLayout pattern="[%date{yyyy-MM-dd HH:mm:ss.SSS}][%thread][%level][%class][%line]:%message%n" />
            <Policies>
                <TimeBasedTriggeringPolicy />
            </Policies>
        </RollingFile>

        <RollingFile name="Out_Request" fileName="${jetty.logs}/outRequest.log" filePattern="${jetty.logs}/outRequest.log.%d{yyyy-MM-dd}.gz">
            <ThresholdFilter level="INFO" onMatch="ACCEPT" onMismatch="DENY"/>
            <PatternLayout pattern="[%date{yyyy-MM-dd HH:mm:ss.SSS}][%thread][%level][%class][%line]:%message%n" />
            <Policies>
                <TimeBasedTriggeringPolicy />
            </Policies>
        </RollingFile>

        <CatAppender name="catAppender"/>

        <MmqAppender name="mmqAppender" env="${environment}">
            <XuanwuLayout/>
        </MmqAppender>
    </Appenders>

    <Loggers>
        <Logger name="db" level="INFO" includeLocation="true" additivity="false">
            <AppenderRef ref="DB" />
            <AppenderRef ref="mmqAppender"/>
        </Logger>

        <Logger name="jmonitor" level="INFO" includeLocation="true" additivity="false">
            <AppenderRef ref="JMonitor" />
            <AppenderRef ref="mmqAppender"/>
        </Logger>

        <Logger name="jmonitorlogstore" level="INFO" includeLocation="true" additivity="false">
            <AppenderRef ref="JMonitorStore" />
            <AppenderRef ref="mmqAppender"/>
        </Logger>

        <Logger name="xuanwu" level="INFO" includeLocation="true" additivity="false">
            <AppenderRef ref="Xuanwu" />
            <AppenderRef ref="mmqAppender"/>
        </Logger>
        <Logger name="Out_Request" level="INFO" includeLocation="true" additivity="false">
            <AppenderRef ref="Out_Request" />
            <AppenderRef ref="Stdout"/>
            <AppenderRef ref="Error"/>
            <AppenderRef ref="AllLog"/>
            <AppenderRef ref="catAppender"/>
            <AppenderRef ref="mmqAppender"/>
        </Logger>

        <Root level="INFO" includeLocation="true">
            <AppenderRef ref="Stdout" />
            <AppenderRef ref="Error" />
            <AppenderRef ref="AllLog" />
            <AppenderRef ref="catAppender"/>
            <AppenderRef ref="mmqAppender"/>
        </Root>
    </Loggers>
</Configuration>

SpringBoot的application.properties

# 配置连接数据库的信息
# java中属性名是驼峰命名法的,但在properties中可以采用-号连接多个
#spring.datasource.driverClassName=com.mysql.cj.jdbc.Driver
#spring.datasource.url=jdbc:mysql://localhost:3306/eshop?serverTimezone=GMT%2B8&useSSL=false&useServerPrepStmts=true&cachePrepStmts=true&rewriteBatchedStatements=true&useCursorFetch=true&defaultFetchSize=100&allowPublicKeyRetrieval=true
#spring.datasource.username=root
#spring.datasource.password=root


# 配置自定义数据库连接参数
com.westos.druid.driver-class-name=com.mysql.cj.jdbc.Driver
com.westos.druid.url=jdbc:mysql://localhost:3306/heimashop?serverTimezone=GMT%2B8&useSSL=false&useServerPrepStmts=true&cachePrepStmts=true&rewriteBatchedStatements=true&useCursorFetch=true&defaultFetchSize=100&allowPublicKeyRetrieval=true
com.westos.druid.username=root
com.westos.druid.password=root
com.westos.druid.max-active=8
com.westos.druid.min-idle=1

# 修改web程序端口
server.port=8080

# 配置某个日志的输出
logging.level.com.westos.springboot.mapper=debug
logging.level.com.westos.springboot.service=debug
logging.level.com.westos.springboot.controller=debug

# 配置thymeleaf
spring.thymeleaf.cache=false
spring.thymeleaf.prefix=classpath:/templates/
spring.thymeleaf.suffix=.html

# 解析html时,不要用严格模式
spring.thymeleaf.mode=LEGACYHTML5

#配置springmvc的视图解析器
spring.mvc.view.prefix=/
spring.mvc.view.suffix=*.jsp

# 文件编码
spring.banner.charset= UTF-8
# 文件位置
spring.banner.location= classpath:banner.txt


# 日志配置
# 日志配置文件的位置。 例如对于Logback的`classpath:logback.xml`
logging.config= classpath:logback.xml
# %wEx#记录异常时使用的转换字。
logging.exception-conversion-word= 
# 日志文件名。 例如`myapp.log`
logging.file= 
# 日志级别严重性映射。 例如`logging.level.org.springframework =  DEBUG`
logging.level.*= 
# 日志文件的位置。 例如`/ var / log`
logging.path= 
# 用于输出到控制台的Appender模式。 只支持默认的logback设置。
logging.pattern.console= 
# 用于输出到文件的Appender模式。 只支持默认的logback设置。
logging.pattern.file= 
# 日志级别的Appender模式(默认%5p)。 只支持默认的logback设置。
logging.pattern.level= 
#注册日志记录系统的初始化挂钩。
logging.register-shutdown-hook= false


# AOP 切面
# 添加@EnableAspectJAutoProxy。
spring.aop.auto= true
# 是否要创建基于子类(CGLIB)的代理(true),而不是基于标准的基于Java接口的代理(false)。
spring.aop.proxy-target-class= false


# 应用程序上下文初始化器
# 应用指标。
# spring.application.index=
# 应用程序名称。
spring.application.name= 


# 国际化(消息源自动配置)
#
spring.messages.basename= messages
# 以逗号分隔的基础名称列表,每个都在ResourceBundle约定之后。
# 加载的资源束文件缓存到期,以秒为单位。 设置为-1时,软件包将永久缓存。
spring.messages.cache-duration=
# 消息编码。
spring.messages.encoding= UTF-8
# 设置是否返回到系统区域设置,如果没有找到特定语言环境的文件。
spring.messages.fallback-to-system-locale= true


# REDIS (Redis 配置)
# 连接工厂使用的数据库索引。
spring.redis.database= 0
# Redis服务器主机。
spring.redis.host= localhost
# redis服务器端口
spring.redis.port=6379
# 登录redis服务器的密码。
spring.redis.password= 
# 给定时间池可以分配的最大连接数。 使用负值为无限制。
spring.redis.pool.max-active= 8
# 池中“空闲”连接的最大数量。 使用负值来表示无限数量的空闲连接。
spring.redis.pool.max-idle= 8
# 连接分配在池耗尽之前在抛出异常之前应阻止的最大时间量(以毫秒为单位)。 使用负值无限期地阻止。
spring.redis.pool.max-wait= -1
# 定义池中维护的最小空闲连接数。 此设置只有在正值时才有效果。
spring.redis.pool.min-idle= 0
# redis服务器名称
spring.redis.sentinel.master=
# 
spring.redis.sentinel.nodes= 
# 连接超时(毫秒)。
spring.redis.timeout=


# 管理员 (Spring应用程序管理员JMX自动配置)
# 开启应用管理功能。
spring.application.admin.enabled= false
# JMX应用程序名称MBean。
spring.application.admin.jmx-name= org.springframework.boot:type= Admin,name= SpringApplication


# 自动配置
# 自动配置类排除。
spring.autoconfigure.exclude= 


# spring 核心配置
# 跳过搜索BeanInfo类。
spring.beaninfo.ignore= true


# spring 缓存配置
# 由底层缓存管理器支持的要创建的缓存名称的逗号分隔列表。
spring.cache.cache-names= 
# 用于初始化EhCache的配置文件的位置。
spring.cache.ehcache.config= 
# 用于创建缓存的规范。 检查CacheBuilderSpec有关规格格式的更多细节。
spring.cache.guava.spec= 
# 用于初始化Hazelcast的配置文件的位置。
spring.cache.hazelcast.config= 
# 用于初始化Infinispan的配置文件的位置。
spring.cache.infinispan.config= 
# 用于初始化缓存管理器的配置文件的位置。
spring.cache.jcache.config= 
# 用于检索符合JSR-107的缓存管理器的CachingProvider实现的完全限定名称。 只有在类路径上有多个JSR-107实现可用时才需要。
spring.cache.jcache.provider= 
# 缓存类型,默认情况下根据环境自动检测。
spring.cache.type= 


# spring配置 (配置文件应用侦听器)
# 配置文件位置。
spring.config.location= 
# 配置文件名。
spring.config.name= application


# hazelcast配置(Hazelcast是一个高度可扩展的数据分发和集群平台,提供了高效的、可扩展的分布式数据存储、数据缓存.)
# 用于初始化Hazelcast的配置文件的位置。
spring.hazelcast.config= 


# JMX
# JMX域名。
spring.jmx.default-domain= 
# 将管理bean暴露给JMX域。
spring.jmx.enabled= true
# MBean服务器bean名称。
spring.jmx.server= mbeanServer


# Email (MailProperties)  邮件属性
# 默认MimeMessage编码。
spring.mail.default-encoding= UTF-8
# SMTP服务器主机。 例如`smtp.example.com`
spring.mail.host= 
# 会话JNDI名称。 设置时,优先于其他邮件设置。
spring.mail.jndi-name= 
# 登录SMTP服务器的密码。
spring.mail.password= 
# SMTP服务器端口。
spring.mail.port= 
# 其他JavaMail会话属性。
spring.mail.properties.*= 
# SMTP服务器使用的协议。
spring.mail.protocol= smtp
# 测试邮件服务器在启动时可用。
spring.mail.test-connection= false
# 登录SMTP服务器的用户。
spring.mail.username= 


# 应用设置(spring应用)
# 用于在应用程序运行时显示横幅的模式。
spring.main.banner-mode= console
# 源(类名,包名或XML资源位置)包含在ApplicationContext中。
spring.main.sources= 
# 在Web环境中运行应用程序(默认情况下自动检测)
spring.main.web-application-type=


# 文件编码(文件编码应用程序侦听器)
# 应用程序使用的预期字符编码。
spring.mandatory-file-encoding=


# 输出
# 配置ANSI输出(可以是“detect”,“always”,“never”)-->“检测”,“永远”,“从不”
spring.output.ansi.enabled= detect


# PID文件(应用程序文件写入器)
# 如果使用ApplicationPidFileWriter但是无法写入PID文件,则失败。
spring.pid.fail-on-write-error= 
# 要写入的PID文件的位置(如果使用ApplicationPidFileWriter)。
spring.pid.file= 


#   简介(profiles 这个单词翻译过来就是这样... 没用过这个属性,有哪位大神用过请留言我改正,感谢。)
# 活动配置文件的逗号分隔列表。
spring.profiles.active= 
# 无条件地激活指定的逗号分隔的配置文件。
spring.profiles.include= 


# SendGrid(SendGrid自动配置)
# SendGrid帐号用户名
spring.sendgrid.username= 
# SendGrid帐号密码
spring.sendgrid.password= 
# SendGrid代理主机
spring.sendgrid.proxy.host= 
# SendGrid代理端口
spring.sendgrid.proxy.port= 


# ----------------------------------------
#   WEB属性
# ----------------------------------------


# 文件上传属性
# 启用对文件上传的支持。
multipart.enabled= true
# 将文件写入磁盘后的阈值。 值可以使用后缀“MB”或“KB”表示兆字节或千字节大小。
multipart.file-size-threshold= 0
# 上传文件的位置。
multipart.location= 
# 最大文件大小。 值可以使用后缀“MB”或“KB”表示兆字节或千字节大小。
multipart.max-file-size= 1Mb
# 最大请求大小。 值可以使用后缀“MB”或“KB”表示兆字节或千字节大小。
multipart.max-request-size= 10Mb


# 嵌入式服务器配置(服务器属性)
# 服务器应绑定到的网络地址。
server.address= 
# 如果启用响应压缩。
server.compression.enabled= false
# 从压缩中排除的用户代理列表。
server.compression.excluded-user-agents= 
# 应该压缩的MIME类型的逗号分隔列表。 例如`text / html,text / css,application / json`
server.compression.mime-types= 
# 执行压缩所需的最小响应大小。 例如2048
server.compression.min-response-size= 
# Servlet上下文初始化参数。 例如`server.context-parameters.a =  alpha`
server.context-parameters.*= 
# 应用程序的上下文路径。
server.context-path= 
# 显示应用程序的名称。
server.display-name= application
# 何时包含“stacktrace”属性。
server.error.include-stacktrace= never
# 错误控制器的路径。
server.error.path= /error
# 启动浏览器中出现服务器错误时显示的默认错误页面。
server.error.whitelabel.enabled= true
# JSP servlet的类名。
server.jsp-servlet.class-name= org.apache.jasper.servlet.JspServlet
# Init参数用于配置JSP servlet
server.jsp-servlet.init-parameters.*= 
# JSP servlet是否被注册
server.jsp-servlet.registered= true
# 服务器HTTP端口。
server.port= 8080
# 主调度程序servlet的路径。
server.servlet-path= /
# 会话cookie的注释。
server.session.cookie.comment= 
# 会话cookie的域。
server.session.cookie.domain= 
# “HttpOnly”标志为会话cookie。
server.session.cookie.http-only= 
# 会话cookie的最大时长(以秒为单位)。
server.session.cookie.max-age= 
# 会话cookie名称。
server.session.cookie.name= 
# 会话cookie的路径。
server.session.cookie.path= 
# 会话cookie的“安全”标志。
server.session.cookie.secure= 
# 重启之间持续会话数据。
server.session.persistent= false
# 用于存储会话数据的目录。
server.session.store-dir= 
# 会话超时(秒)。
server.session.timeout= 
# 会话跟踪模式(以下一个或多个:“cookie”,“url”,“ssl”)。
server.session.tracking-modes= 
# 支持SSL密码。
server.ssl.ciphers= 
# 客户端认证是否需要(“want”)或需要(“need”)。 需要信任存储。
server.ssl.client-auth= 
# ssl配置
server.ssl.enabled= 
server.ssl.key-alias= 
server.ssl.key-password= 
server.ssl.key-store= 
server.ssl.key-store-password= 
server.ssl.key-store-provider= 
server.ssl.key-store-type= 
server.ssl.protocol= 
server.ssl.trust-store= 
server.ssl.trust-store-password= 
server.ssl.trust-store-provider= 
server.ssl.trust-store-type= 
# 创建日志文件的目录。 可以相对于tomcat base dir或absolute。
server.tomcat.accesslog.directory= 
# 启用访问日志。
server.tomcat.accesslog.enabled= false
# 访问日志的格式化模式。
server.tomcat.accesslog.pattern= common
# 日志文件名前缀。
server.tomcat.accesslog.prefix= access_log
# 日志文件名后缀。
server.tomcat.accesslog.suffix= .log
# 在调用backgroundProcess方法之间延迟秒。
server.tomcat.background-processor-delay= 30
# Tomcat基本目录。 如果未指定,将使用临时目录。
server.tomcat.basedir= 
# 正则表达式匹配可信IP地址。
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}
# HTTP消息头的最大大小(以字节为单位)。
server.tomcat.max-http-header-size= 0
# 最大工作线程数。
server.tomcat.max-threads= 0
# 用于覆盖原始端口值的HTTP头的名称。
server.tomcat.port-header= X-Forwarded-Port
# 头文件,保存传入协议,通常命名为“X-Forwarded-Proto”。
server.tomcat.protocol-header= 
# 表示传入请求使用SSL的协议头的值。
server.tomcat.protocol-header-https-value= https
# 提取远程ip的HTTP头的名称。 例如`X-FORWARDED-FOR`
server.tomcat.remote-ip-header= 
# 用于解码URI的字符编码。
server.tomcat.uri-encoding= UTF-8
# 访问日志目录。
server.undertow.accesslog.dir= 
# 启用访问日志。
server.undertow.accesslog.enabled= false
# 访问日志的格式化模式。
server.undertow.accesslog.pattern= common
# 每个缓冲区的大小字节数。
server.undertow.buffer-size= 
# 每个区域的缓冲区数。
server.undertow.buffers-per-region= 
# 在Java堆之外分配缓冲区。
server.undertow.direct-buffers= 
# 为工作者创建的I / O线程数。
server.undertow.io-threads= 
# 工作线程数。
server.undertow.worker-threads= 
# 如果X-Forwarded- *头应该应用于HttpRequest。
server.use-forward-headers= 


# 自由标记(自由标记自动配置)
# 设置是否允许HttpServletRequest属性重写(隐藏)控制器生成的同名模型属性。
spring.freemarker.allow-request-override= false
# 设置是否允许HttpSession属性重写(隐藏)控制器生成的相同名称的模型属性。
spring.freemarker.allow-session-override= false
# 启用模板缓存。
spring.freemarker.cache= false
# 模板编码。
spring.freemarker.charset= UTF-8
# 检查模板位置是否存在。
spring.freemarker.check-template-location= true
# Content-Type值。
spring.freemarker.content-type= text/html
# 启用此技术的MVC视图分辨率。
spring.freemarker.enabled= true
# 设置在与模板合并之前是否应将所有请求属性添加到模型中。
spring.freemarker.expose-request-attributes= false
# 设置在与模板合并之前是否应将所有HttpSession属性添加到模型中。
spring.freemarker.expose-session-attributes= false
# 设置是否公开一个RequestContext供Spring 的宏库使用,名称为“springMacroRequestContext”。
spring.freemarker.expose-spring-macro-helpers= true
# 首选文件系统访问模板加载。 文件系统访问可以对模板更改进行热检测。
spring.freemarker.prefer-file-system-access= true
# 前缀,在构建URL时先查看名称。
spring.freemarker.prefix= 
# 所有视图的RequestContext属性的名称。
spring.freemarker.request-context-attribute= 
# 公开的FreeMarker密钥将被传递给FreeMarker的配置。
spring.freemarker.settings.*= 
# 后缀,在构建URL时附加到查看名称。
spring.freemarker.suffix= 
# 逗号分隔的模板路径列表。
spring.freemarker.template-loader-path= classpath:/templates/
# 可以解决的视图名称的白名单。
spring.freemarker.view-names= 


# groovr模板(Groovy模板自动配置)
# 设置是否允许HttpServletRequest属性重写(隐藏)控制器生成的同名模型属性。
spring.groovy.template.allow-request-override= false
# 设置是否允许HttpSession属性重写(隐藏)控制器生成的相同名称的模型属性。
spring.groovy.template.allow-session-override= false
# 启用模板缓存。
spring.groovy.template.cache= 
# 模板编码。
spring.groovy.template.charset= UTF-8
# 检查模板位置是否存在。
spring.groovy.template.check-template-location= true
# 请参阅GroovyMarkupConfigurer
spring.groovy.template.configuration.*= 
# Content-Type值。
spring.groovy.template.content-type= test/html
# 启用此技术的MVC视图分辨率。
spring.groovy.template.enabled= true
# 设置在与模板合并之前是否应将所有请求属性添加到模型中。
spring.groovy.template.expose-request-attributes= false
# 设置在与模板合并之前是否应将所有HttpSession属性添加到模型中。
spring.groovy.template.expose-session-attributes= false
# 设置是否公开一个RequestContext供Spring Spring的宏库使用,名称为“springMacroRequestContext”。
spring.groovy.template.expose-spring-macro-helpers= true
# 前缀,在构建URL时先查看名称。
spring.groovy.template.prefix= 
# 所有视图的RequestContext属性的名称。
spring.groovy.template.request-context-attribute= 
# 模板路径。
spring.groovy.template.resource-loader-path= classpath:/templates/
# 后缀,在构建URL时附加到查看名称。
spring.groovy.template.suffix= .tpl
# 可以解决的视图名称的白名单。
spring.groovy.template.view-names= 


# spring Hateoas 配置
# 指定应用程序/ hal + json响应是否应发送到接受application / json的请求。
spring.hateoas.use-hal-as-default-json-media-type= true


# HTTP 消息转换
# 首选JSON映射程序用于HTTP消息转换。 设置为“gson”强制使用Gson,当它和Jackson都在类路径上时。
spring.http.converters.preferred-json-mapper= jackson


# HTTP 编码(Http编码属性)
# HTTP请求和响应的字符集。 如果未明确设置,则添加到“Content-Type”头。
spring.http.encoding.charset= UTF-8
# 启用http编码支持。
spring.http.encoding.enabled= true
# 将编码强制到HTTP请求和响应上配置的字符集。
spring.http.encoding.force= true


# Jackson(解析json和序列化json) 配置
# 日期格式字符串或全限定日期格式类名。 例如`yyyy-MM-dd HH:mm:ss`。
spring.jackson.date-format= 
# Jones开/关功能,影响Java对象反序列化的方式。
spring.jackson.deserialization.*= 
# 关闭或者打开Jackson 功能
spring.jackson.generator.*= 
# Joda日期时间格式字符串。 如果未配置,如果配置了格式字符串,则“日期格式”将用作后备。
spring.jackson.joda-date-time-format= 
# 用于格式化的区域设置。
spring.jackson.locale= 
# jackson通用开/关功能。
spring.jackson.mapper.*= 
# Jackson 解析器的开/关功能。
spring.jackson.parser.*= 
# Jackson的PropertyNamingStrategy的一个常量。 也可以是PropertyNamingStrategy子类的完全限定类名。
spring.jackson.property-naming-strategy= 
# Jones开/关功能,影响Java对象序列化的方式。
spring.jackson.serialization.*= 
# 控制在序列化期间包含属性。 配置了Jackson的JsonInclude.Include枚举中的一个值。
spring.jackson.serialization-inclusion= 
# 格式化日期时使用的时区。 例如`America / Los_Angeles`
spring.jackson.time-zone= 


# Jersey 配置
# 作为应用程序的基本URI的路径。 如果指定,则覆盖“@ApplicationPath”的值。
spring.jersey.application-path= 
# jersey过滤器链顺序。
spring.jersey.filter.order= 0
#  init参数传递到Jersey通过servlet或过滤器。
spring.jersey.init.*= 
# jersey整合型。可以是“servlet”也可以是“filter”。
spring.jersey.type= servlet


# spring 视图分解器 配置
# 启用后退解析支持。
spring.mobile.devicedelegatingviewresolver.enable-fallback= false
# 启用设备视图解析器。
spring.mobile.devicedelegatingviewresolver.enabled= false
# 前缀,用于查看移动设备的名称。
spring.mobile.devicedelegatingviewresolver.mobile-prefix= mobile/
# 后缀,附加到查看移动设备的名称。
spring.mobile.devicedelegatingviewresolver.mobile-suffix= 
# 前缀,用于查看普通设备的名称。
spring.mobile.devicedelegatingviewresolver.normal-prefix= 
# 后缀,附加到查看普通设备的名称。
spring.mobile.devicedelegatingviewresolver.normal-suffix= 
# 前缀,用于查看平板设备的名称。
spring.mobile.devicedelegatingviewresolver.tablet-prefix= tablet/
# 后缀,附加到查看平板电脑设备的名称。
spring.mobile.devicedelegatingviewresolver.tablet-suffix= 


# 移动网站首选项 (站点首选项自动配置)
# 启用SitePreferenceHandler。
spring.mobile.sitepreference.enabled= true


# MUSTACHE模板(Mustache AutoConfiguration)
# 启用模板缓存。
spring.mustache.cache= false
# 模板编码。
spring.mustache.charset= UTF-8
# 检查模板位置是否存在。
spring.mustache.check-template-location= true
# Content-Type值
spring.mustache.content-type= text/html
# 启用此技术的MVC视图分辨率。
spring.mustache.enabled= true
# 前缀应用于模板名称。
spring.mustache.prefix= classpath:/templates/
# 后缀应用于模板名称。
spring.mustache.suffix= .html
# 可以解决的视图名称的白名单。
spring.mustache.view-names= 


# SPRING MVC (Web Mvc 配置)
# 异步请求处理超时之前的时间量(以毫秒为单位)。
spring.mvc.async.request-timeout= 
# 要使用的日期格式。 例如`dd / MM / yyyy`。
spring.mvc.date-format= 
# 发送TRACE请求到FrameworkServlet doService方法。
spring.mvc.dispatch-trace-request= false
# 发送OPTIONS请求到FrameworkServlet doService方法。
spring.mvc.dispatch-options-request= false
# 启用favicon.ico的解析。
spring.mvc.favicon.enabled= true
# 如果在重定向方案期间应该忽略“默认”模型的内容。
spring.mvc.ignore-default-model-on-redirect= true
# 要使用的区域设置。
spring.mvc.locale= 
# 将文件扩展名映射到内容协商的媒体类型。
spring.mvc.media-types.*= 
# 消息代码格式策略。 例如`PREFIX_ERROR_CODE`。
spring.mvc.message-codes-resolver-format= 
# 用于静态资源的路径模式。
spring.mvc.static-path-pattern= /**
# 如果没有发现处理程序来处理请求,则应抛出“NoHandlerFoundException”。
spring.mvc.throw-exception-if-no-handler-found= false
# Spring MVC视图前缀。
spring.mvc.view.prefix= 
# Spring MVC视图后缀。
spring.mvc.view.suffix= 


# SPRING RESOURCES HANDLING(ResourceProperties)资源处理
# 启用默认资源处理。
spring.resources.add-mappings =true
# 由资源处理程序提供的资源的缓存期,以秒为单位。
spring.resources.cache-period =
#在资源链中启用缓存。
spring.resources.chain.cache = true
#启用Spring资源处理链。默认情况下禁用,除非启用了至少一个策略。
spring.resources.chain.enabled =
#启用HTML5应用程序缓存清单重写。
spring.resources.chain.html-application-cache =false
#启用内容版本策略。
spring.resources.chain.strategy.content.enabled = false
# 应用于版本策略的模式的逗号分隔列表。
spring.resources.chain.strategy.content.paths =
#启用固定版本策略。
spring.resources.chain.strategy.fixed.enabled = false
#应用于版本策略的逗号分隔的模式列表。
spring.resources.chain.strategy.fixed.paths =
#用于版本策略的版本字符串。
spring.resources.chain.strategy.fixed.version =
#静态资源的位置。
spring.resources.static-locations = classpath:/ META-INF / resources /,classpath:/ resources /,classpath:/ static /,classpath:/ public /


# SPRING SOCIAL(SocialWebAutoConfiguration)集群
#启用支持的提供程序的连接状态视图。
spring.social.auto-connection-views = false


# SPRING SOCIAL FACEBOOK(FacebookAutoConfiguration)
#您的应用程序的Facebook应用程序ID
spring.social.facebook.app-id =
#你的应用程序的Facebook应用程序密码
spring.social.facebook.app-secret =


#SPRING SOCIAL LINKEDIN(LinkedInAutoConfiguration)
spring.social.linkedin.app-id = #您的应用程序的LinkedIn应用程序ID
spring.social.linkedin.app-secret = #您的应用程序的LinkedIn App Secret


#SPRING SOCIAL TWITTER(TwitterAutoConfiguration)
spring.social.twitter.app-id = #你的应用程序的Twitter应用程序ID
spring.social.twitter.app-secret = #你的应用程序的Twitter App Secret


#THYMELEAF Thymeleaf模板引擎配置
#启用模板缓存。
spring.thymeleaf.cache = true
#检查模板位置是否存在。
spring.thymeleaf.check-template-location = true
#Content-Type值。
spring.thymeleaf.content-type = text/html
#启用MVC Thymeleaf视图分辨率。
spring.thymeleaf.enabled = true
#模板编码。
spring.thymeleaf.encoding = UTF-8 
#应该从解决方案中排除的视图名称的逗号分隔列表。
spring.thymeleaf.excluded-view-names =
#应用于模板的模板模式。另请参见StandardTemplateModeHandlers。
spring.thymeleaf.mode = HTML5 
#在构建URL时预先查看名称的前缀。
spring.thymeleaf.prefix = classpath:/ templates / 
#构建URL时附加查看名称的后缀。
spring.thymeleaf.suffix = .html 
#链中模板解析器的顺序。
spring.thymeleaf.template-resolver-order =
#可以解析的视图名称的逗号分隔列表。
spring.thymeleaf.view-names =


 #VELOCITY TEMPLATES(VelocityAutoConfiguration)
#设置是否允许HttpServletRequest属性覆盖(隐藏)控制器生成的同名的模型属性。
spring.velocity.allow-request-override = false
#设置是否允许HttpSession属性重写(隐藏)控制器生成的同名的模型属性。
spring.velocity.allow-session-override = false
#启用模板缓存。
spring.velocity.cache =
#模板编码。
spring.velocity.charset = UTF-8 
#检查模板位置是否存在。
spring.velocity.check-template-location = true 
#Content-Type值。
spring.velocity.content-type = text / html 
#在视图的Velocity上下文中公开的DateTool辅助对象的名称。
spring.velocity.date-tool-attribute =
#启用此技术的MVC视图分辨率。
spring.velocity.enabled = true 
#设置在与模板合并之前是否应将所有请求属性添加到模型中。
spring.velocity.expose-request-attributes = false 
#设置在与模板合并之前是否应将所有HttpSession属性添加到模型中。
spring.velocity.expose-session-attributes = false 
#设置是否公开一个RequestContext供Spring Spring的宏库使用,名称为“springMacroRequestContext”。
spring.velocity.expose-spring-macro-helpers = true 
#在视图的Velocity上下文中公开的NumberTool帮助对象的名称。
spring.velocity.number-tool-attribute =
#首选文件系统访问模板加载。文件系统访问可以对模板更改进行热检测。
spring.velocity.prefer-file-system-access = true 
#前缀,用于在构建URL时查看名称。
spring.velocity.prefix =
#附加速度属性。
spring.velocity.properties。* =
#所有视图的RequestContext属性的名称。
spring.velocity.request-context-attribute =
#模板路径。
spring.velocity.resource-loader-path = classpath:/ templates / 
#构建URL时附加到查看名称的后缀。
spring.velocity.suffix = .vm 
#Velocity Toolbox配置位置。例如`/ WEB-INF / toolbox.xml'
spring.velocity.toolbox-config-location =
#可以解决的视图名称的白名单。
spring.velocity.view-names =



#----------------------------------------
#安全属性
#----------------------------------------
#SECURITY(SecurityProperties)
#应用安全授权模式。
security.basic.authorize-mode = role 
#启用基本身份验证。
security.basic.enabled = true 
#安全路径的逗号分隔列表。
security.basic.path = /** 
#HTTP基本的领域名称。
security.basic.realm = Spring 
#启用跨站点请求伪造支持。
security.enable-csrf = false 
#安全过滤器连锁订单。
security.filter-order = 0 
#启用缓存控制HTTP头。
security.headers.cache = true 
# 启用“X-Content-Type-Options”头。
security.headers.content-type = true
#启用“X-Frame-Options”标题。
security.headers.frame = true 
# HTTP严格传输安全(HSTS)模式(无,域,全部)。
security.headers.hsts =
#启用跨站点脚本(XSS)保护。
security.headers.xss = true 
#从默认安全路径中排除的路径的逗号分隔列表。
security.ignored =
#为所有请求启用安全通道。
security.require-ssl = false 
#会话创建策略(永远不会,if_required,无状态)。
security.sessions = stateless 
#默认用户名。
security.user.name = user 
#默认用户名的密码。默认情况下,启动时会记录随机密码。
security.user.password =
#为默认用户名授予角色。
security.user.role = USER 


#SECURITY OAUTH2 CLIENT(OAuth2ClientProperties
security.oauth2.client.client-id = #OAuth2客户端ID。
security.oauth2.client.client-secret = #OAuth2客户机密码。默认生成随机密码


#SECURITY OAUTH2 RESOURCES(ResourceServerProperties
security.oauth2.resource.id = #资源的标识符。
security.oauth2.resource.jwt.key-uri = #JWT令牌的URI。如果值不可用并且密钥是公共的,可以设置。
security.oauth2.resource.jwt.key-value = #JWT令牌的验证密钥。可以是对称秘密或PEM编码的RSA公钥。
security.oauth2.resource.prefer-token-info = true #使用令牌信息,可以设置为false以使用用户信息。
security.oauth2.resource.service-id = resource #
security.oauth2.resource.token-info-uri = #令牌解码端点的URI。
security.oauth2.resource.token-type = #使用userInfoUri时发送的令牌类型。
security.oauth2.resource.user-info-uri = #用户端点的URI。


 #SECURITY OAUTH2 SSO(OAuth2SsoProperties
security.oauth2.sso.filter-order = #如果不提供显式的WebSecurityConfigurerAdapter,则应用过滤器顺序
security.oauth2.sso.login-path = / login #登录页面的路径,即触发重定向到OAuth2授权服务器的路径




# ----------------------------------------
# DATA PROPERTIES 数据性能
# ----------------------------------------


# FLYWAY (FlywayProperties)
flyway.baseline-description = #
flyway.baseline-version = 1 #版本开始迁移
flyway.baseline-on-migrate =
#检查迁移脚本位置是否存在。
flyway.check-location = false 
flyway.clean-on-validation-error =
#启用飞行路线。
flyway.enabled = true 
flyway.encoding =
flyway.ignore-failed-future-migration =
执行SQL语句,以便在获取连接后立即初始化连接。
flyway.init-sqls = #
#迁移脚本的位置
flyway.locations = classpath:db / migration
#如果您希望Flyway创建自己的DataSource,则需要使用#path密码
flyway.out-of-order =
flyway.placeholder-prefix =
flyway.placeholder-replacement =
flyway.placeholder-suffix =
flyway.placeholders.* =
#schemas来更新
flyway.schemas =
flyway.sql-migration-prefix =
flyway.sql-migration-separator =
flyway.sql-migration-suffix = .sql
flyway.table = #
#要迁移的数据库的JDBC url。如果未设置,则使用主配置的数据源。
flyway.url =
#登录要迁移的数据库的用户。
flyway.user =
flyway.validate-on-migrate =


# LIQUIBASE (LiquibaseProperties)
liquibase.change-log = classpath:/db/changelog/db.changelog-master.yaml #更改日志配置路径。
#检查更改日志位置是否存在。
liquibase.check-change-log-location = true 
liquibase.contexts = #使用逗号分隔的运行时上下文列表。
liquibase.default-schema = #默认数据库模式。
#首先删除数据库模式。
liquibase.drop-first = false
#启用liquidibase支持。
liquibase.enabled = true
liquibase.labels = #使用逗号分隔的运行时标签列表。
liquibase.parameters。* = #更改日志参数。
liquibase.password = #登录要迁移的数据库的密码。
liquibase.url = #要迁移的数据库的JDBC url。 如果未设置,则使用主配置的数据源。
liquibase.user = #登录要迁移的数据库的用户。



# DAO (PersistenceExceptionTranslationAutoConfiguration)
# 启用持久异常翻译后处理器。
spring.dao.exceptiontranslation.enabled= true 


# CASSANDRA (CassandraProperties)
spring.data.cassandra.cluster-name = #Cassandra群集的名称。
spring.data.cassandra.compression = #由Cassandra二进制协议支持的压缩。
#套接字选项:连接超时。
spring.data.cassandra.connect-timeout-millis =
#查询一致性级别。
spring.data.cassandra.consistency-level =
spring.data.cassandra.contact-points = localhost #集群节点地址的逗号分隔列表。
#查询默认的抓取大小。
spring.data.cassandra.fetch-size =
#要使用的密钥空间名称。
spring.data.cassandra.keyspace-name =
#负载均衡策略的类名。
spring.data.cassandra.load-balancing-policy =
#Cassandra服务器端口。
spring.data.cassandra.port =
#登录服务器的密码。
spring.data.cassandra.password =
#套接字选项:读取超时。
spring.data.cassandra.read-timeout-millis =
#重新连接策略类。
spring.data.cassandra.reconnection-policy =
#重试策略的类名。
spring.data.cassandra.retry-policy =
#查询串行一致性级别。
spring.data.cassandra.serial-consistency-level =
#启用SSL支持。
spring.data.cassandra.ssl = false 
#登录用户的服务器。
spring.data.cassandra.username =


# ELASTICSEARCH (ElasticsearchProperties)
spring.data.elasticsearch.cluster-name = elasticsearch #弹性搜索集群名称。
spring.data.elasticsearch.cluster-nodes = #集群节点地址的逗号分隔列表。 如果未指定,则启动客户端节点。
spring.data.elasticsearch.properties。* = #用于配置客户端的其他属性。
#启用Elasticsearch存储库。
spring.data.elasticsearch.repositories.enabled = true


# MONGODB (MongoProperties)
spring.data.mongodb.authentication-database = #验证数据库名称。
spring.data.mongodb.database = test #数据库名称。
#要使用的FieldNamingStrategy的完全限定名称。
spring.data.mongodb.field-naming-strategy =
spring.data.mongodb.grid-fs-database = #GridFS数据库名称。
spring.data.mongodb.host = localhost #Mongo服务器主机。
spring.data.mongodb.password = #登录mongo服务器的密码。
#Mongo服务器端口。
spring.data.mongodb.port = 27017
#启用Mongo存储库。
spring.data.mongodb.repositories.enabled = true
spring.data.mongodb.uri = mongodb:// localhost / test #Mongo数据库URI。 设置时,主机和端口将被忽略。
spring.data.mongodb.username = #登录mongo服务器的用户。


# DATA REST (RepositoryRestProperties)
spring.data.rest.base-path = #由Spring Data REST用于公开存储库资源的基本路径。
#页面的默认大小。
spring.data.rest.default-page-size =
#通过Spring Data REST默认资源包启用枚举值转换。
spring.data.rest.enable-enum-translation =
#指示一次返回多少结果的URL查询字符串参数的名称。
spring.data.rest.limit-param-name =
#最大页面大小。
spring.data.rest.max-page-size =
#指示要返回的页面的URL查询字符串参数的名称。
spring.data.rest.page-param-name =
#创建一个实体后返回响应体。
spring.data.rest.return-body-on-create =
#更新实体后返回响应体。
spring.data.rest.return-body-on-update =
#指示排序结果的方向的URL查询字符串参数的名称。
spring.data.rest.sort-param-name =


# SOLR (SolrProperties)
spring.data.solr.host = http://127.0.0.1:8983/solr #Solr主机。 如果设置了“zk-host”,则被忽略。
#启用Solr存储库。
spring.data.solr.repositories.enabled = true 
spring.data.solr.zk-host = #ZooKeeper主机地址,格式为HOST:PORT。


# 数据源 配置 (DataSourceAutoConfiguration & DataSourceProperties)
#初始化数据库时发生错误时不要停止。
spring.datasource.continue-on-error = false 
spring.datasource.data = #Data(DML)脚本资源引用。
#JDBC驱动程序的完全限定名称。默认情况下,根据URL自动检测。
spring.datasource.driver-class-name =
#使用'data.sql'填充数据库。
spring.datasource.initialize = true
#启用JMX支持(如果由底层池提供)。
spring.datasource.jmx-enabled = false
spring.datasource.jndi-name = #数据源的JNDI位置。设置时,类,网址,用户名和密码将被忽略。
spring.datasource.max-active = #例如100
spring.datasource.max-idle = #例如8
spring.datasource.max等待=
spring.datasource.min-evictable空闲时间-米利斯=
spring.datasource.min-idle = 8
spring.datasource.name = testdb #数据源的名称。
spring.datasource.password = #登录数据库的密码。
spring.datasource.platform = all #在资源模式(schema - $ {platform} .sql)中使用的平台。
spring.datasource.schema = #Schema(DDL)脚本资源引用。
spring.datasource.separator =;  #语句分隔符在SQL初始化脚本中。
#SQL脚本编码。
spring.datasource.sql-script-encoding =
spring.datasource.test-on-borrow = #例如`false`
spring.datasource.test-on-return = #例如`false`
spring.datasource.test-while-idle = #
spring.datasource.time-between-eviction-runs-millis = 1
#要使用的连接池实现的完全限定名称。默认情况下,它是从类路径自动检测的。
spring.datasource.type =
spring.datasource.url = #数据库的JDBC url。
spring.datasource.username= 
spring.datasource.validation-query= 


# H2 Web Console (H2ConsoleProperties)  
#启用控制台。
spring.h2.console.enabled = false 
spring.h2.console.path = / h2-console #控制台可用的路径。


# JOOQ (JooqAutoConfiguration)
spring.jooq.sql-dialect=  # 与配置的数据源通信时使用的SQLDialect JOOQ。 例如`POSTGRES`


# JPA (JpaBaseConfiguration, HibernateJpaAutoConfiguration)
#启用JPA存储库。
spring.data.jpa.repositories.enabled = true 
#目标数据库进行操作,默认情况下自动检测。可以使用“databasePlatform”属性设置。
spring.jpa.database =
#要运行的目标数据库的名称,默认情况下自动检测。可以使用“数据库”枚举来设置。
spring.jpa.database-platform =
#启动时初始化模式。
spring.jpa.generate-ddl = false 
#DDL模式。这实际上是“hibernate.hbm2ddl.auto”属性的快捷方式。使用嵌入式数据库时默认为“创建删除”,否则为“否”。
spring.jpa.hibernate.ddl-auto =
# 命名策略完全限定名。
spring.jpa.hibernate.naming-strategy =
#注册OpenEntityManagerInViewInterceptor。将JPA EntityManager绑定到线程以进行请求的整个处理。
spring.jpa.open-in-view = true 
#在JPA提供程序上设置的其他本机属性。
spring.jpa.properties.* =
#启用SQL语句的日志记录。
spring.jpa.show-sql = false 


# JTA (JtaAutoConfiguration)
spring.jta。* = #技术特定配置
spring.jta.log-dir = #Transaction logs目录。


# ATOMIKOS
#从池中借用连接的超时(以秒为单位)。
spring.jta.atomikos.connectionfactory.borrow-connection-timeout = 30 
#创建会话时是否忽略事务标志。
spring.jta.atomikos.connectionfactory.ignore-session-transacted-flag = true 
#是否需要本地事务。
spring.jta.atomikos.connectionfactory.local-transaction-mode = false 
#池的维护线程运行之间的时间(以秒为单位)。
spring.jta.atomikos.connectionfactory.maintenance-interval = 60 
#从池中清除连接之后的时间(以秒为单位)。
spring.jta.atomikos.connectionfactory.max-idle-time = 60 
#在被破坏之前可以将连接合并的时间(以秒为单位)。 0表示无限制。
spring.jta.atomikos.connectionfactory.max-lifetime = 0 
#池的最大大小。
spring.jta.atomikos.connectionfactory.max-pool-size = 1 
#池的最小大小。
spring.jta.atomikos.connectionfactory.min-pool-size = 1 
#借用连接的收获超时(以秒为单位)。 0表示无限制。

spring.jta.atomikos.connectionfactory.reap-timeout = 0
#用于在恢复期间标识资源的唯一名称。
spring.jta.atomikos.connectionfactory.unique-resource-name = jmsConnectionFactory 
#从池中借出连接的超时(秒)。
spring.jta.atomikos.datasource.borrow-connection-timeout = 30 
#池提供的连接的默认隔离级别。
spring.jta.atomikos.datasource.default-isolation-level =
#用于建立数据库连接的超时(以秒为单位)。
spring.jta.atomikos.datasource.login-timeout =
#池的维护线程运行之间的时间(以秒为单位)。
spring.jta.atomikos.datasource.maintenance-interval = 60 
#从池中清除连接之后的时间(以秒为单位)。
spring.jta.atomikos.datasource.max-idle-time = 60 
#在被破坏之前可以将连接合并的时间(以秒为单位)。 0表示无限制。
spring.jta.atomikos.datasource.max-lifetime = 0 
#池的最大大小。
spring.jta.atomikos.datasource.max-pool-size = 1 
#池的最小大小。
spring.jta.atomikos.datasource.min-pool-size = 1 
#借用连接的收获超时(以秒为单位)。 0表示无限制。
spring.jta.atomikos.datasource.reap-timeout = 0 

spring.jta.atomikos.datasource.test-query = #用于在返回连接之前验证连接的SQL查询或语句。

spring.jta.atomikos.datasource.unique-resource-name = dataSource #用于在恢复期间识别资源的唯一名称。



# BITRONIX
# 生成池时要创建的连接数。
spring.jta.bitronix.connectionfactory.acquire-increment = 1 
#在获取无效连接后再次尝试获取连接之前等待的时间(以秒为单位)。
spring.jta.bitronix.connectionfactory.acquisition-interval = 1 
#从池中获取连接的超时(以秒为单位)。
spring.jta.bitronix.connectionfactory.acquisition-timeout = 30 
#事务管理器是否允许混合XA和非XA事务。
spring.jta.bitronix.connectionfactory.allow-local-transactions = true 
#当XAResource被登记时,是否应该设置事务超时。
spring.jta.bitronix.connectionfactory.apply-transaction-timeout = false 
#资源是否应该被自动登记和删除。
spring.jta.bitronix.connectionfactory.automatic-enlisting-enabled = true 
#是否生产和消费者应该被缓存。
spring.jta.bitronix.connectionfactory.cache-producer-consumer = true 
#提供程序是否可以在同一连接上运行许多事务,并支持事务交织。
spring.jta.bitronix.connectionfactory.defer-connection-release = true 
#是否应忽略恢复失败。
spring.jta.bitronix.connectionfactory.ignore-recovery-failures = false 
#从池中清除连接之后的时间(以秒为单位)。
spring.jta.bitronix.connectionfactory.max-idle-time = 60 
#池的最大大小。 0表示无限制。
spring.jta.bitronix.connectionfactory.max-pool-size = 10 
#池的最小大小。
spring.jta.bitronix.connectionfactory.min-pool-size = 0 

spring.jta.bitronix.connectionfactory.password = #用于连接到JMS提供程序的密码。
#ACCESSIBLE状态中的连接是否可以在事务的上下文中共享
spring.jta.bitronix.connectionfactory.share-transaction-connections = false 。
#从池中获取连接是否应该进行测试。
spring.jta.bitronix.connectionfactory.test-connections = true 
#在两阶段提交期间该资源应该采取的位置(始终为Integer.
spring.jta.bitronix.connectionfactory.two-pc-ordering-position = 1 MIN_VALUE,始终为Integer.MAX_VALUE)。

spring.jta.bitronix.connectionfactory.unique-name = jmsConnectionFactory #用于在恢复期间标识资源的唯一名称。
#启动XAResource时是否应使用TMJOIN。
spring.jta.bitronix.connectionfactory.use-tm-join = true

spring.jta.bitronix.connectionfactory.user = #用于连接到JMS提供者的用户。
#生成池时要创建的连接数。
spring.jta.bitronix.datasource.acquire-increment = 1 
#在获取无效连接后再尝试获取连接之前等待的时间(以秒为单位)。
spring.jta.bitronix.datasource.acquisition-interval = 1 
#从池中获取连接的超时(以秒为单位)。
spring.jta.bitronix.datasource.acquisition-timeout = 30 

#事务管理器是否允许混合XA和非XA事务。
spring.jta.bitronix.datasource.allow-local-transactions = true 
#当XAResource被登记时,是否应该设置事务超时。
spring.jta.bitronix.datasource.apply-transaction-timeout = false 
#资源是否应该被登记和自动删除。
spring.jta.bitronix.datasource.automatic-enlisting-enabled = true 

spring.jta.bitronix.datasource.cursor-holdability = #连接的默认游标保持性。
#数据库是否可以在同一连接上运行许多事务,并支持事务交织。
spring.jta.bitronix.datasource.defer-connection-release = true 
#从池中获取连接时是否调用Connection.isValid()。
spring.jta.bitronix.datasource.enable-jdbc4-connection-test =
#是否应忽略恢复失败。
spring.jta.bitronix.datasource.ignore-recovery-failures = false
spring.jta.bitronix.datasource.isolation-level = #连接的默认隔离级别。
spring.jta.bitronix.datasource.local-auto-commit = #本地事务的默认自动提交模式。
#用于建立数据库连接的超时(以秒为单位)。
spring.jta.bitronix.datasource.login-timeout =
#从池中清除连接之后的时间(以秒为单位)。
spring.jta.bitronix.datasource.max-idle-time = 60
#池的最大大小。 0表示无限制。
spring.jta.bitronix.datasource.max-pool-size = 10 
#池的最小大小。
spring.jta.bitronix.datasource.min-pool-size = 0 
#准备好的语句高速缓存的目标大小。 0禁用缓存。
spring.jta.bitronix.datasource.prepared-statement-cache-size = 0 
ACCESSIBLE状态下的连接是否可以在事务的上下文中共享。
spring.jta.bitronix.datasource.share-transaction-connections = false #
spring.jta.bitronix.datasource.test-query = #用于在返回连接之前验证连接的SQL查询或语句。
#在两阶段提交期间该资源应该采取的位置(始终为Integer.MIN_VALUE,始终为Integer.MAX_VALUE)。
spring.jta.bitronix.datasource.two-pc-ordering-position = 1 
spring.jta.bitronix.datasource.unique-name = dataSource #用于在恢复期间标识资源的唯一名称。
# 启动XAResource时是否应使用TMJOIN。
spring.jta.bitronix.datasource.use-tm-join = true


# EMBEDDED MONGODB (EmbeddedMongoProperties)
spring.mongodb.embedded.features = SYNC_DELAY #启用功能的逗号分隔列表。
spring.mongodb.embedded.version = 2.6.10 #Mongo使用版本。



# ----------------------------------------
# 整合属性
# ----------------------------------------

#ACTIVEMQ(ActiveMQProperties)
spring.activemq.broker-url = #ActiveMQ代理的URL。 默认自动生成。 例如`tcp:// localhost:61616`
# 指定默认代理URL是否应在内存中。 如果指定了一个显式代理,则被忽略。
spring.activemq.in-memory = true
spring.activemq.password = #登录密码的代理。
spring.activemq.pooled = false #指定是否创建PooledConnectionFactory而不是常规的ConnectionFactory。
spring.activemq.user = #代理登录用户。


# ARTEMIS (ArtemisProperties)
spring.artemis.embedded.cluster-password = #群集密码。 默认情况下随机生成。
spring.artemis.embedded.data-directory = #日志文件目录。 如果持久性被关闭,则不需要。
#如果Artemis服务器API可用,启用嵌入式模式。
spring.artemis.embedded.enabled = true 
#启用持久存储。
spring.artemis.embedded.persistent = false 
spring.artemis.embedded.queues = #启动时要创建的队列的逗号分隔列表。
#服务器ID。 默认情况下,使用自动递增的计数器。
spring.artemis.embedded.server-id =
#启动时要创建的主题的逗号分隔列表。
spring.artemis.embedded.topics =
spring.artemis.host = localhost #Artemis代理主机。
#Artemis部署模式,默认情况下自动检测。 可以显式设置为“native”或“embedded”。
spring.artemis.mode =
#Artemis 中间件端口。
spring.artemis.port = 61616 


# SPRING BATCH(Batch 配置)
#如果需要,在启动时创建所需的批处理表。
spring.batch.initializer.enabled = true
#在启动时执行上下文中的所有Spring批处理作业。
spring.batch.job.enabled = true 
spring.batch.job.names = #在启动时执行的作业名称的逗号分隔列表(例如`job1,job2`)。 默认情况下,执行在上下文中找到的所有作业。
spring.batch.schema = classpath:org / springframework / batch / core / schema - @@ platform @@。sql #用于初始化数据库模式的SQL文件的路径。
spring.batch.table-prefix = #所有批次元数据表的表前缀。


# HORNETQ (HornetQ 配置)
spring.hornetq.embedded.cluster-password = #集群密码。 默认情况下随机生成。
spring.hornetq.embedded.data-directory = #日志文件目录。 如果持久性被关闭,则不需要。
spring.hornetq.embedded.enabled = true #如果HornetQ服务器API可用,启用嵌入式模式。
spring.hornetq.embedded.persistent = false #启用持久存储。
spring.hornetq.embedded.queues = #启动时要创建的队列的逗号分隔列表。
spring.hornetq.embedded.server-id = #服务器ID。 默认情况下,使用自动递增的计数器。
spring.hornetq.embedded.topics = #在启动时创建的主题的逗号分隔列表。
spring.hornetq.host = localhost #HornetQ代理主机。
spring.hornetq.mode = #HornetQ部署模式,默认情况下自动检测。 可以显式设置为“native”或“embedded”。
spring.hornetq.port = 5445 #HornetQ代理端口。


# JMS (Jms 配置)
# 连接工厂JNDI名称。 设置时,优先于其他连接工厂自动配置。
spring.jms.jndi-name= 
# 容器的确认模式。 默认情况下,监听器被自动确认处理。
spring.jms.listener.acknowledge-mode= 
# 启动时自动启动容器。
spring.jms.listener.auto-startup= true
# 最小并发消费者数。
spring.jms.listener.concurrency= 
# 最大并发消费者数。
spring.jms.listener.max-concurrency= 
# 指定默认的目的地类型是否为主题。
spring.jms.pub-sub-domain= false


# RABBIT (Rabbit 配置)
# 客户端应连接到的逗号分隔的地址列表。
spring.rabbitmq.addresses = 
# 创建一个AmqpAdmin bean。
spring.rabbitmq.dynamic =  true 
spring.rabbitmq.host =  localhost# RabbitMQ主机。
spring.rabbitmq.listener.acknowledge-mode = # 容器的确认模式。
spring.rabbitmq.listener.auto-startup =  true# 启动时自动启动容器。
spring.rabbitmq.listener.concurrency = # 最少消费者数。
spring.rabbitmq.listener.max-concurrency = # 最大消费者数。
spring.rabbitmq.listener.prefetch = # 在单个请求中要处理的消息数。它应该大于或等于事务大小(如果使用)。
spring.rabbitmq.listener.transaction-size = # 在事务中要处理的消息数。为了获得最佳结果,它应该小于或等于预取计数。
spring.rabbitmq.password = # 登录以对代理进行身份验证。
# RabbitMQ端口。
spring.rabbitmq.port =  5672
# 请求的心跳超时,以秒为单位;零为无。
spring.rabbitmq.requested-heartbeat =
# 启用SSL支持。
spring.rabbitmq.ssl.enabled =  false
spring.rabbitmq.ssl.key-store =  # 保存SSL证书的密钥存储区的路径。
spring.rabbitmq.ssl.key-store-password = # 用于访问密钥库的密码。
spring.rabbitmq.ssl.trust-store = # 保存SSL证书的Trust存储。
spring.rabbitmq.ssl.trust-store-password = # 用于访问信任存储的密码。
spring.rabbitmq.username = # 登录用户对代理进行身份验证。
spring.rabbitmq.virtual-host = # 连接到代理时使用的虚拟主机。


# 端点配置(EndpointCorsProperties)
# 设置是否支持凭据。 未设置时,不支持凭据。
endpoints.cors.allow-credentials= 
# 在请求中允许的头文件逗号分隔列表。 '*'允许所有标题。
endpoints.cors.allowed-headers= 
# 逗号分隔的允许的方法列表。 '*'允许所有方法。
endpoints.cors.allowed-methods= GET
# 逗号分隔的起始列表允许。 '*'允许所有来源。 未设置时,禁用CORS支持。
endpoints.cors.allowed-origins= 
# 包含在响应中的标题的逗号分隔列表。
endpoints.cors.exposed-headers= 
# 客户端可以缓存飞行前请求的响应时间(秒)。
endpoints.cors.max-age= 1800


# JMX ENDPOINT (EndpointMBeanExportProperties) (端点MBean导出属性)
# JMX域名。 如果设置为'spring.jmx.default-domain'的值初始化。
endpoints.jmx.domain= 
# 启用所有端点的JMX导出。
endpoints.jmx.enabled= true
# 附加静态属性以附加到表示端点的MBean的所有对象名称。
management.endpoints.jmx.static-names= 
# 确保在发生冲突时修改ObjectNames。
endpoints.jmx.unique-names= false


# JOLOKIA  JOLOKIA 配置
# 见Jolokia手册
jolokia.config.*= 


# 管理HTTP服务器(管理服务器属性)
# 在每个响应中添加“X-Application-Context”HTTP头。
management.add-application-context-header= true
# 管理端点应绑定到的网络地址。
management.address= 
# 管理端点上下文路径。 例如`/ actuator`
management.context-path= 
# 管理端点HTTP端口。 默认使用与应用程序相同的端口。
management.port= 
# 启用安全性
management.security.enabled= true
# 访问管理端点所需的角色。
management.security.role= ADMIN
# 会话创建策略使用(always,never,if_required,stateless)(总是,永远,if_required,无状态)。
management.security.sessions= stateless


# HEALTH INDICATORS (previously health.*)
# 启用数据库运行状况检查
management.health.db.enabled= true
# 启用默认的健康指标。
management.health.defaults.enabled= true
# 启用磁盘空间运行状况检查。
management.health.diskspace.enabled= true
# 用于计算可用磁盘空间的路径。
management.health.diskspace.path= 
# 应该可用的最小磁盘空间(以字节为单位)。
management.health.diskspace.threshold= 0
# 启用弹性搜索健康检查。
management.health.elasticsearch.enabled= true
# 逗号分隔的索引名称。
management.health.elasticsearch.indices= 
# 等待群集响应的时间(以毫秒为单位)。
management.health.elasticsearch.response-timeout= 100
# 启用JMS健康检查。
management.health.jms.enabled= true
# 启用邮件运行状况检查。
management.health.mail.enabled= true
# 启用MongoDB健康检查。
management.health.mongo.enabled= true
# 启用RabbitMQ运行状况检查。
management.health.rabbit.enabled= true
# 启用Redis健康检查。
management.health.redis.enabled= true
# 启用Solr运行状况检查。
management.health.solr.enabled= true
# 按照严重性的顺序,以逗号分隔的健康状态列表。
management.health.status.order= DOWN, OUT_OF_SERVICE, UNKNOWN, UP


# TRACING ((TraceProperties) 跟踪性能
# 跟踪中包含的项目。
management.trace.include= request-headers,response-headers,errors


# 远程 shell配置
# 验证类型。 根据环境自动检测。
shell.auth= simple
# JAAS域。
shell.auth.jaas.domain= my-domain
# 验证密钥的路径。 这应该指向一个有效的“.pem”文件。
shell.auth.key.path= 
# 登录用户。
shell.auth.simple.user.name= user
# 登录用户的密码。
shell.auth.simple.user.password= 
# 登录到CRaSH控制台的所需的角色,以逗号分隔列表。
shell.auth.spring.roles= ADMIN
# 用于查找命令的模式。
shell.command-path-patterns= classpath*:/commands/**,classpath*:/crash/commands/**
# 扫描更改并在必要时更新命令(以秒为单位)。
shell.command-refresh-interval= -1
# 用于查找配置的模式。
shell.config-path-patterns= classpath*:/crash/*
# 逗号分隔的要禁用的命令列表。
shell.disabled-commands= jpa*,jdbc*,jndi*
# 禁用逗号分隔的插件列表。 默认情况下,根据环境禁用某些插件。
shell.disabled-plugins= 
# 用户被提示再次登录后的毫秒数。
shell.ssh.auth-timeout = 
# 启用CRaSH SSH支持。
shell.ssh.enabled= true
# 未使用的连接关闭之后的毫秒数。
shell.ssh.idle-timeout = 
# SSH服务器密钥路径。
shell.ssh.key-path= 
# SSH端口。
shell.ssh.port= 2000
# 启用CRaSH telnet支持。 如果TelnetPlugin可用,默认情况下启用。
shell.telnet.enabled= false
# Telnet端口。
shell.telnet.port= 5000


# GIT 信息配置
# 生成的git信息属性文件的资源引用。
spring.git.properties= 


# 标准出口
# 模式,告诉聚合器如何从源存储库中的键。
spring.metrics.export.aggregate.key-pattern= 
# 全局存储库的前缀如果处于活动状态。
spring.metrics.export.aggregate.prefix= 
# 导出刻度之间以毫秒为单位的延迟。 按照这种延迟,指标将按计划导出到外部来源。
spring.metrics.export.delay-millis= 5000
# 标志以启用度量标准导出(假设MetricWriter可用)。
spring.metrics.export.enabled= true
# 要排除的度量名称列表。 应用后包括。
spring.metrics.export.excludes= 
# 要包含的度量名称的模式列表。
spring.metrics.export.includes= 
# redis存储库导出的密钥(如果活动)。
spring.metrics.export.redis.key= keys.spring.metrics
# redis存储库的前缀 如果处于活动状态。
spring.metrics.export.redis.prefix= spring.metrics
# 标志基于不导出不变的度量值来关闭任何可用的优化。
spring.metrics.export.send-latest= 
# 主机的statsd服务器接收导出的指标。
spring.metrics.export.statsd.host= 
# 接收导出指标的statsd服务器端口。
spring.metrics.export.statsd.port= 8125
# statsd导出指标的前缀。
spring.metrics.export.statsd.prefix= 
# 每个MetricWriter bean名称具有特定的触发器属性。
spring.metrics.export.triggers.*= 


# ----------------------------------------
# DEVTOOLS属性
# ----------------------------------------

# DEVTOOLS(开发工具属性)
# 启用一个livereload.com兼容的服务器。
spring.devtools.livereload.enabled= true
#  # Server port.
spring.devtools.livereload.port= 35729
# 应该排除的触发完全重新启动的其他模式。
spring.devtools.restart.additional-exclude= 
# 观看更改的附加路径。
spring.devtools.restart.additional-paths= 
# 启用自动重启功能。
spring.devtools.restart.enabled= true
# 应该排除的模式触发完全重新启动。
spring.devtools.restart.exclude= META-INF/maven/**,META-INF/resources/**,resources/**,static/**,public/**,templates/**,**/*Test.class,**/*Tests.class,git.properties
# 轮询类路径更改之间等待的时间量(以毫秒为单位)。
spring.devtools.restart.poll-interval= 1000
# 触发重新启动之前没有任何类路径更改所需的安静时间量(以毫秒为单位)。
spring.devtools.restart.quiet-period= 400
# 更改后的特定文件的名称将触发重新启动检查。 如果未指定任何类路径文件更改将触发重新启动。
spring.devtools.restart.trigger-file= 


# 远程开发工具属性
# 用于处理远程连接的上下文路径。
spring.devtools.remote.context-path= /.~~spring-boot!~
# 启用远程调试支持。
spring.devtools.remote.debug.enabled= true
# 本地远程调试服务器端口。
spring.devtools.remote.debug.local-port= 8000
# 用于连接到远程应用程序的代理主机。
spring.devtools.remote.proxy.host= 
# 用于连接到远程应用程序的代理端口。
spring.devtools.remote.proxy.port= 
# 启用远程重启。
spring.devtools.remote.restart.enabled= true
# 建立连接所需的共享密钥(需要启用远程支持)。
spring.devtools.remote.secret= 
# HTTP头用于传输共享密钥。</ span>
spring.devtools.remote.secret-header-name= X-AUTH-TOKEN

log4j.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE log4j:configuration PUBLIC "-//log4j/log4j Configuration//EN" "log4j.dtd">
 
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
 
    <!-- 日志输出到控制台 -->
    <appender name="console" class="org.apache.log4j.ConsoleAppender">
        <!-- 日志输出格式 -->
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="[%p][%d{yyyy-MM-dd HH:mm:ss SSS}][%c]-[%m]%n"/>
        </layout>
 
        <!--过滤器设置输出的级别-->
        <filter class="org.apache.log4j.varia.LevelRangeFilter">
            <!-- 设置日志输出的最小级别 -->
            <param name="levelMin" value="INFO"/>
            <!-- 设置日志输出的最大级别 -->
            <param name="levelMax" value="ERROR"/>
        </filter>
    </appender>
 
 
    <!-- 输出日志到文件 -->
    <appender name="fileAppender" class="org.apache.log4j.FileAppender">
        <!-- 输出文件全路径名-->
        <param name="File" value="/data/applogs/own/fileAppender.log"/>
        <!--是否在已存在的文件追加写:默认时true,若为false则每次启动都会删除并重新新建文件-->
        <param name="Append" value="false"/>
        <param name="Threshold" value="INFO"/>
        <!--是否启用缓存,默认false-->
        <param name="BufferedIO" value="false"/>
        <!--缓存大小,依赖上一个参数(bufferedIO), 默认缓存大小8K  -->
        <param name="BufferSize" value="512"/>
        <!-- 日志输出格式 -->
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="[%p][%d{yyyy-MM-dd HH:mm:ss SSS}][%c]-[%m]%n"/>
        </layout>
    </appender>
 
 
    <!-- 输出日志到文件,当文件大小达到一定阈值时,自动备份 -->
    <!-- FileAppender子类 -->
    <appender name="rollingAppender" class="org.apache.log4j.RollingFileAppender">
        <!-- 日志文件全路径名 -->
        <param name="File" value="/data/applogs/RollingFileAppender.log" />
        <!--是否在已存在的文件追加写:默认时true,若为false则每次启动都会删除并重新新建文件-->
        <param name="Append" value="true" />
        <!-- 保存备份日志的最大个数,默认值是:1  -->
        <param name="MaxBackupIndex" value="10" />
        <!-- 设置当日志文件达到此阈值的时候自动回滚,单位可以是KB,MB,GB,默认单位是KB,默认值是:10MB -->
        <param name="MaxFileSize" value="10KB" />
        <!-- 设置日志输出的样式 -->`
        <layout class="org.apache.log4j.PatternLayout">
            <!-- 日志输出格式 -->
            <param name="ConversionPattern" value="[%d{yyyy-MM-dd HH:mm:ss:SSS}] [%-5p] [method:%l]%n%m%n%n" />
        </layout>
    </appender>
 
 
    <!-- 日志输出到文件,可以配置多久产生一个新的日志信息文件 -->
    <appender name="dailyRollingAppender" class="org.apache.log4j.DailyRollingFileAppender">
        <!-- 文件文件全路径名 -->
        <param name="File" value="/data/applogs/own/dailyRollingAppender.log"/>
        <param name="Append" value="true" />
        <!-- 设置日志备份频率,默认:为每天一个日志文件 -->
        <param name="DatePattern" value="'.'yyyy-MM-dd'.log'" />
 
        <!--每分钟一个备份-->
        <!--<param name="DatePattern" value="'.'yyyy-MM-dd-HH-mm'.log'" />-->
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="[%p][%d{HH:mm:ss SSS}][%c]-[%m]%n"/>
        </layout>
    </appender>
 
 
 
    <!--
        1. 指定logger的设置,additivity是否遵循缺省的继承机制
        2. 当additivity="false"时,root中的配置就失灵了,不遵循缺省的继承机制
        3. 代码中使用Logger.getLogger("logTest")获得此输出器,且不会使用根输出器
    -->
    <logger name="logTest" additivity="false">
        <level value ="INFO"/>
        <appender-ref ref="dailyRollingAppender"/>
    </logger>
 
 
    <!-- 根logger的设置,若代码中未找到指定的logger,则会根据继承机制,使用根logger-->
    <root>
        <appender-ref ref="console"/>
        <appender-ref ref="fileAppender"/>
        <appender-ref ref="rollingAppender"/>
        <appender-ref ref="dailyRollingAppender"/>
    </root>
 
</log4j:configuration>

jdbc.properties

jdbc.driver=com.mysql.cj.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/test?serverTimezone=GMT%2B8&useSSL=false&useServerPrepStmts=true&cachePrepStmts=true&rewriteBatchedStatements=true&useCursorFetch=true&defaultFetchSize=100&allowPublicKeyRetrieval=true
jdbc.username=root
jdbc.password=root
jdbc.max=10
jdbc.min=2

redis.properties

redis.maxIdle=30
redis.minIdle=10
redis.maxTotal=100
redis.url=192.168.106.130
redis.port=6379

二、SSM配置:

spring-context.xml

<?xml version="1.0" encoding="UTF-8" ?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:context="http://www.springframework.org/schema/context"
       xmlns:aop="http://www.springframework.org/schema/aop"
       xmlns:mvc="http://www.springframework.org/schema/mvc"
       xmlns:tx="http://www.springframework.org/schema/tx"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:cache="http://www.springframework.org/schema/cache"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
 http://www.springframework.org/schema/beans/spring-beans.xsd
 http://www.springframework.org/schema/context
 http://www.springframework.org/schema/context/spring-context.xsd
 http://www.springframework.org/schema/aop
 http://www.springframework.org/schema/aop/spring-aop.xsd
 http://www.springframework.org/schema/mvc
 http://www.springframework.org/schema/mvc/spring-mvc.xsd
 http://www.springframework.org/schema/tx
 http://www.springframework.org/schema/tx/spring-tx.xsd
 http://www.springframework.org/schema/cache
 http://www.springframework.org/schema/cache/spring-cache.xsd">

    <!-- 1) 读取properties -->
    <context:property-placeholder location="classpath:jdbc.properties"/>

    <!-- 2) 配置数据源(连接池) -->
    <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource">
        <property name="driverClassName" value="${jdbc.driver}"/>
        <property name="url" value="${jdbc.url}"/>
        <property name="username" value="${jdbc.username}"/>
        <property name="password" value="${jdbc.password}"/>
        <property name="maxActive" value="${jdbc.max}"/>
        <property name="minIdle" value="${jdbc.min}"/>
    </bean>

    <!-- 3) 配置SqlSessionFactory -->
    <bean id="sessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        <property name="dataSource" ref="dataSource"/>
    </bean>

    <!-- 4) 扫描mapper接口-->
    <bean id="scannerConfigurer" class="org.mybatis.spring.mapper.MapperScannerConfigurer">
        <property name="basePackage" value="com.westos.mapper"/>
    </bean>

    <!-- 5) 事务的管理 (事务管理器, 启用事务注解) -->
    <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
        <property name="dataSource" ref="dataSource"/>
    </bean>

    <!--开启事务注解-->
    <tx:annotation-driven/>


    <!-- 6) 扫描service类 -->
    <!--<bean class="com.westos.service.UserService"></bean>-->
    <!--<bean id="regionService" class="com.westos.service.impl.RegionServiceImpl"></bean>-->
    <!-- 扫描组件,会扫描加了@Controller, @Service, @Repository, @Component, 把加了这几个注解的类交给spring容器管理 -->
    <context:component-scan base-package="com.westos.service"/>

    <!-- 7) 启用mvc的注解 -->
    <mvc:annotation-driven/>

    <!-- 8) 扫描控制器类 -->
    <!--<bean class="com.westos.controller.UserController"></bean>-->
    <context:component-scan base-package="com.westos.controller"/>

    <!-- 9) 视图解析器 -->
    <mvc:view-resolvers>
        <mvc:jsp prefix="/" suffix=".jsp"/>
    </mvc:view-resolvers>

    <!-- 10) 文件上传解析器 -->
    <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
    </bean>

    <!-- 11) 静态资源处理器 -->
    <mvc:default-servlet-handler/>

    <!-- 对静态资源文件的访问,因为Spring MVC会拦截所有请求,导致jsp页面中对js和CSS的引用也被拦截,配置后可以把对资源的请求交给项目的
    默认拦截器而不是Spring MVC-->
    <!--<mvc:resources mapping="/static/**" location="/WEB-INF/static/" />-->

    <!-- 12) 启用aop注解,自动代理-->
    <aop:aspectj-autoproxy/>
    <!-- 13) 通知类 -->

    <!-- 14) 启用autowird等注解 -->
    <context:annotation-config/>

    <!-- 15) 缓存相关配置 -->
    <!-- 缓存的管理器 -->
    <bean id="cacheManager" class="org.springframework.cache.concurrent.ConcurrentMapCacheManager">
        <!-- 管理缓存区域 -->
        <property name="cacheNames">
            <list>
                <value>user</value>
                <value>order</value>
                <value>product</value>
            </list>
        </property>
    </bean>

    <!-- 启用缓存相关的注解及支持
        @Cacheable
        @CacheEvict
        @CachePut
    -->
    <cache:annotation-driven/>
</beans>

spring-mybatis.xml

spring-mvc.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!--suppress ALL -->
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:context="http://www.springframework.org/schema/context"
       xmlns:aop="http://www.springframework.org/schema/aop"
       xmlns:mvc="http://www.springframework.org/schema/mvc"
       xmlns:tx="http://www.springframework.org/schema/tx"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:cache="http://www.springframework.org/schema/cache"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
 http://www.springframework.org/schema/beans/spring-beans.xsd
 http://www.springframework.org/schema/context
 http://www.springframework.org/schema/context/spring-context.xsd
 http://www.springframework.org/schema/aop
 http://www.springframework.org/schema/aop/spring-aop.xsd
 http://www.springframework.org/schema/mvc
 http://www.springframework.org/schema/mvc/spring-mvc.xsd
 http://www.springframework.org/schema/tx
 http://www.springframework.org/schema/tx/spring-tx.xsd
 http://www.springframework.org/schema/cache
 http://www.springframework.org/schema/cache/spring-cache.xsd">

    <!-- 控制器类交给spring容器管理 -->
    <!-- 配置Controller扫描 -->
    <context:component-scan base-package="com.westos.controller" />
    <!--<bean id="helloController" class="com.westos.controller.HelloContrlloer"></bean>-->
    <!--<bean id="regionController" class="com.westos.controller.RegionController"></bean>-->
    <!--<bean id="userController" class="com.westos.controller.UserController"></bean>-->

    <!-- 启用springmvc相关的功能注解 -->
    <mvc:annotation-driven/>

    <!-- 配置视图解析器, jsp视图技术,freemarker,volcity -->
    <!-- 选择了一种视图技术 前缀+视图名+后缀 ==> 最终的jsp路径 / + hello + .jsp ==>  /hello.jsp  -->
    <mvc:view-resolvers>
        <mvc:jsp prefix="/" suffix=".jsp"/>
    </mvc:view-resolvers>

    <!-- 专门处理图片等静态资源,避免静态资源的404错误 -->
    <mvc:default-servlet-handler/>


    <!-- 配置jsp 显示ViewResolver -->
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
        <property name="prefix" value="/WEB-INF/views/"/>
        <property name="suffix" value=".jsp"/>
    </bean>
</beans>

web.xml文件配置:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
         version="3.1">

    <!-- 职责:
       1.作为统一入口
       2.创建spring容器
       3.在tomcat启动时,就把spring容器创建好
    -->
    <servlet>
        <servlet-name>springmvc</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <!-- 指明了spring配置文件的位置 -->
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>classpath:spring.xml</param-value>
        </init-param>
        <!-- 在tomcat启动时,就创建这个servlet,并初始化该servlet -->
        <load-on-startup>1</load-on-startup>
    </servlet>

    <servlet-mapping>
        <servlet-name>springmvc</servlet-name>
        <url-pattern>/</url-pattern>
        <!-- 给 DispatcherServlet 指定路径
        假设浏览器  /hello  没有,会找 / 这个路径
                   /s1     没有,会找 / 这个路径

                 只要没有其他servlet能够精确匹配这个请求路径,这个请求都会被 / 的这个servlet来处理
        -->
    </servlet-mapping>


    <!-- spring 提供的字符编码过滤器 -->
    <filter>
        <filter-name>encoding</filter-name>
        <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
        <init-param>
            <param-name>encoding</param-name>
            <param-value>utf-8</param-value>
        </init-param>
    </filter>

    <filter-mapping>
        <filter-name>encoding</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
</web-app>

mybatis配置:

<?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="com.westos.mapper.ProductMapper">
    <!-- 开启 ProductMapper的二级缓存, 会让本mapper内的所有select利用二级缓存-->
    <cache/>

    <!-- 把连接查询映射到两个有关系的实体类上 -->
    <select id="selectById" parameterType="int" resultMap="bbb">
        select p.id, p.name, p.price, c.id cid, c.name cname
         from product p inner join category c on p.category_id = c.id where p.id=#{id}
    </select>

    <!-- association 关联 -->
    <resultMap id="bbb" type="com.westos.entity.Product">
        <id column="id" property="id"></id>
        <result column="name" property="name"></result>
        <result column="price" property="price"></result>
        <!-- property="关系属性名" -->
        <association property="category" javaType="com.westos.entity.Category">
            <id column="cid" property="id"></id>
            <result column="cname" property="name"></result>
        </association>
    </resultMap>

    <select id="select1" parameterType="int" resultType="com.westos.entity.Product">
        select * from product where id = #{id}
    </select>

    <update id="update" keyProperty="com.westos.entity.Product">
        update ${tablename} set name='${name}', price=${price+100} where id = #{id}
    </update>
</mapper>
<?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="com.westos.mapper.StudentMapper">

    <!--
    将数据库插入后生成的id值,同步到java对象上
        useGeneratedKeys="是否使用由数据库生成的主键"
         keyColumn="主键列的名称"
         keyProperty="主键要存入哪个属性"
    -->
    <insert id="insert" parameterType="com.westos.entity.Student"
            useGeneratedKeys="true" keyColumn="id" keyProperty="id">
        insert into student (id, name, age) values (null, #{name}, #{age})
    </insert>

    <!-- list (1,2,3)
    collection="要遍历的集合"
    item="临时变量名称"
    open="循环之前的符号"
    close="循环之后的符号"
    separator="每个元素的分隔符"
    delete from student where id in (1, 2, 3)
    delete from student where id in (1, 2, 3)
    -->
    <delete id="delete" parameterType="list">
      delete from student where id in
      <foreach collection="list" item="i" open="(" close=")" separator=",">
          #{i}
      </foreach>
    </delete>

    <!-- 利用 if标签解决多条件组合查询 -->
    <!--<select id="selectByCondition" parameterType="map" resultType="com.westos.entity.Student">
        select * from student where 1=1
        <if test="name != null">
            and name like #{name}
        </if>
        <if test="minAge != null and maxAge != null">
            and age between #{minAge} and #{maxAge}
        </if>
    </select>-->

    <select id="selectByCondition" parameterType="map" resultType="com.westos.entity.Student">
        select * from student
        <where> <!-- 会添加where关键字,并去掉多余的and关键字 -->
            <if test="name != null">
                and name like #{name}
            </if>
            <if test="minAge != null and maxAge != null">
                and age between #{minAge} and #{maxAge}
            </if>
        </where>
    </select>

    <update id="update" parameterType="com.westos.entity.Student">
        update student
        <set>
            <if test="name != null">
                name = #{name},
            </if>
            <if test="age != 0">
                age = #{age},
            </if>
        </set>
        where id = #{id}
    </update>

    <!-- map
        .put("m", 下标);
        .put("n", 数量);
    -->
    <select id="selectByPage" parameterType="map" resultType="com.westos.entity.Student">
        select * from student limit #{m}, #{n}
    </select>

    <!-- 逻辑分页 -->
    <select id="selectLogical" resultType="com.westos.entity.Student">
        select * from student
    </select>

</mapper>
<?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="com.westos.mapper.TeacherMapper">

    <!-- 方法1: 可以使用列别名来解决不一致问题 -->
    <!--<select id="selectOne" parameterType="int" resultType="com.westos.entity.Teacher">
        select id,first_name firstName,last_name lastName from teacher where id = #{id}
    </select>-->

    <!-- 方法2: 使用 resultMap 代替 resultType完成映射 -->
    <select id="selectOne" parameterType="int" resultMap="aaa">
        select id, first_name, last_name from teacher where id = #{id}
    </select>

    <!-- type="实体对象的类型"
         id 标签用来映射主键
         result 标签用来映射其它列
    -->
    <resultMap id="aaa" type="com.westos.entity.Teacher">
        <!-- column="列名" property="属性名" -->
        <id column="id" property="id"></id>
        <result column="first_name" property="firstName"></result>
        <result column="last_name" property="lastName"></result>
    </resultMap>
</mapper>
<?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">
<!-- namespace="mapper的包名.mapper的文件名"  主要是防止sql名字冲突 -->
<mapper namespace="com.westos.mapper.UserMapper">
    <!-- id="SQL语句的唯一标识"
         parameterType="sql语句需要的参数类型"
    -->
    <!-- User(username,password) #{写的是参数对象的属性名}- -->
    <insert id="insert" parameterType="com.westos.entity.User">
        insert into user (username, password) values (#{username},#{password})
    </insert>


    <!-- #{写的是参数对象的属性名}-->
    <update id="update" parameterType="com.westos.entity.User">
        update user set password = #{password} where username = #{username}
    </update>

    <!-- java.lang.String 可以简化为 string 基本类型和字符串 #{任意字符名称}-->
    <delete id="delete" parameterType="string">
        delete from user where username=#{abc}
    </delete>

    <!-- 查询单条记录,根据用户名查询
        resultType="结果类型"
    -->
    <select id="selectOne" parameterType="string" resultType="com.westos.entity.User">
        select username, password from user where username=#{abc}
    </select>

    <!-- 在这里仍然是集合中元素的类型 -->
    <select id="selectAll" resultType="com.westos.entity.User">
        select username, password from user
    </select>

</mapper>

springboot中读取自定义数据库连接:

package com.westos.springboot.druid;

import com.alibaba.druid.pool.DruidDataSource;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;


@Component // 让spring容器扫描到它并管理
@ConfigurationProperties(prefix = "com.westos.druid") // 用来读取*.properties配置文件中的信息
public class DruidDataSourceProperties {

    private String driverClassName;
    private String url;
    private String username;
    private String password;
    private int maxActive;
    private int minIdle;

	/* getter setter 方法*/
}

在springboot的启动类中首先调用配置:
 /**
     * 在java类提供等价于原来 在xml中bean标签的配置
     * <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource">
     * <property name="driverClassName" value="${jdbc.driver}"/>
     * <property name="url" value="${jdbc.url}"/>
     * <property name="username" value="${jdbc.username}"/>
     * <property name="password" value="${jdbc.password}"/>
     * <property name="maxActive" value="${jdbc.max}"/>
     * <property name="minIdle" value="${jdbc.min}"/>
     * </bean>
     */
    @Autowired
    DruidDataSourceProperties dsp;

    @Bean // @Bean注解的作用是把方法返回的结果,纳入spring容器的管理, 把方法名当做bean的id, 默认这个bean对象也是单例的
    public DataSource dataSource() {
        DruidDataSource dataSource = new DruidDataSource();
        dataSource.setDriverClassName(dsp.getDriverClassName());
        dataSource.setUrl(dsp.getUrl());
        dataSource.setUsername(dsp.getUsername());
        dataSource.setPassword(dsp.getPassword());
        dataSource.setMaxActive(dsp.getMaxActive());
        dataSource.setMinIdle(dsp.getMinIdle());
        return dataSource;
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

phial03

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值