spring boot的一些配置应用

来源:互联网 发布:企业内部数据共享方案 编辑:程序博客网 时间:2024/06/03 04:55

1、使用前端模板thymeleaf,会要求使用严格的html标签

严格的html标签会很麻烦,会大大降低前端开发效率,下面的步骤可以去除严格的html标签限制。

配置文件application.xml中增加:

spring.thymeleaf.mode=LEGACYHTML5

pom文件中增加:

<dependency>            <groupId>net.sourceforge.nekohtml</groupId>            <artifactId>nekohtml</artifactId>            <version>1.9.22</version>        </dependency>

2、页面热加载

调整了页面不想重新编译后才能查看效果
配置文件application.xml中增加:

spring.thymeleaf.cache = false

来禁用页面缓存

3、热部署

项目在启动状态,如果每次修改代码有,要重启项目会耗费不少时间。使用spring boot 的热部署功能可以减少每次重启项目耗费的时间。
pom文件中增加:

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

每次修改代码后只需要重新编译一下,项目就会重启,而这种重启会非常快,因为他只重新加载了本工程的class文件,外部文件不再重新加载。

4、配置日志功能

resource文件夹下新建logback-spring.xml,文件内容如下:

<?xml version="1.0" encoding="UTF-8"?><configuration>    <!--定义日志文件的存储地址 勿在 LogBack 的配置中使用相对路径-->    <property name="LOG_PATH" value="d:\\logs" />    <!-- 彩色日志格式 -->    <property name="CONSOLE_LOG_PATTERN" value="${CONSOLE_LOG_PATTERN:-%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}}" />    <!-- 控制台输出 -->    <appender name="consoleLog" class="ch.qos.logback.core.ConsoleAppender">        <layout class="ch.qos.logback.classic.PatternLayout">            <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->            <pattern>%d - %msg%n</pattern>        </layout>    </appender>    <!-- 按照每天生成日志文件 -->    <appender name="fileInfoLog" class="ch.qos.logback.core.rolling.RollingFileAppender">        <filter class="ch.qos.logback.classic.filter.LevelFilter">            <level>ERROR</level>            <onMatch>DENY</onMatch>            <onMismatch>ACCEPT</onMismatch>        </filter>        <encoder>            <pattern>%msg%n</pattern>        </encoder>        <!--滚动策略-->        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">            <!--路径-->            <fileNamePattern>${LOG_PATH}/analysis/info.%d.log</fileNamePattern>            <!--日志文件保留天数-->            <MaxHistory>45</MaxHistory>        </rollingPolicy>    </appender>    <appender name="fileErrorLog" class="ch.qos.logback.core.rolling.RollingFileAppender">        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">            <level>ERROR</level>        </filter>        <encoder>            <pattern>%msg%n</pattern>        </encoder>        <!--滚动策略-->        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">            <!--路径-->            <fileNamePattern>${LOG_PATH}/analysis/error.%d.log</fileNamePattern>            <!--日志文件保留天数-->            <MaxHistory>45</MaxHistory>        </rollingPolicy>    </appender>    <root level="info">        <appender-ref ref="consoleLog" />        <appender-ref ref="fileInfoLog" />        <appender-ref ref="fileErrorLog" />    </root></configuration>

spring boot 项目中已经集成了slf4j日志组件,所以可以直接调用。
调用方法:

//实例化Logger logger = LoggerFactory.getLogger(类名<T>.class);//记录日志logger.info("test");logger.error("test");logger.debug("test");

5、静态资源路径

如果使用thymeleaf前端模板,所有的静态资源都存放在static文件夹下。

如下图所示:
这里写图片描述

资源路径只需要从static下开始写:

/img/404.jpg

程序默认会从static文件夹下开始找。

6、项目名称及端口号配置

配置文件application.xml下增加:

server.context-path=/demo
server.error.path=/error
server.port=8787
server.session-timeout=30

如果不配置server.context-path,那么访问根路径就是ip+端口号
配置了server.context-path,静态资源访问路径也需要加上该前缀,即:

/demo/img/404.jpg

server.error.path=/error即配置出错访问页面。可以自己定义一个error.html页面放在template文件夹下。
不自己定义就会使用默认的页面。
server.port=8787定义端口号为8787
server.session-timeout=30定义session超时时间为30分钟

7、war包部署到tomcat中

spring boot 集成tomcat,默认是jar包。直接命令行可以运行。不需要再去配置tomcat环境。不过需要java 8版本支持。
如果需要war包部署到tomcat中,需要对pom文件进行更改:

<groupId>com.demo</groupId>    <artifactId>demo</artifactId>    <version>1.0</version><packaging>war</packaging>    <!--war包使用-->        <!--<dependency>-->            <!--<groupId>javax.servlet</groupId>-->            <!--<artifactId>javax.servlet-api</artifactId>-->            <!--<version>3.1.0</version>-->            <!--<scope>provided</scope>-->        <!--</dependency>-->        <!--war包使用-->        <!--war包使用-->        <!--<dependency>-->            <!--<groupId>org.springframework.boot</groupId>-->            <!--<artifactId>spring-boot-starter-tomcat</artifactId>-->            <!--<scope>provided</scope>-->        <!--</dependency>-->        <!--war包使用-->        <dependency>            <groupId>org.springframework.boot</groupId>            <artifactId>spring-boot-starter-web</artifactId>            <!--war包使用-->            <!--<exclusions>-->                <!--<exclusion>-->                    <!--<groupId>org.springframework.boot</groupId>-->                    <!--<artifactId>spring-boot-starter-tomcat</artifactId>-->                <!--</exclusion>-->            <!--</exclusions>-->            <!--war包使用-->        </dependency>    <build>        <plugins>            <plugin>                <groupId>org.springframework.boot</groupId>                <artifactId>spring-boot-maven-plugin</artifactId>                <configuration>                    <jvmArguments>-Dfile.encoding=UTF-8</jvmArguments>                </configuration>            </plugin>            <!--war包使用-->            <!--<plugin>-->                <!--<groupId>org.apache.maven.plugins</groupId>-->                <!--<artifactId>maven-war-plugin</artifactId>-->                <!--<configuration>-->                    <!--<warName>demo</warName>-->                <!--</configuration>-->            <!--</plugin>-->        </plugins>    </build>

启动类做修改:

public class DemoApplication extends SpringBootServletInitializer{    public static void main(String[] args) {        SpringApplication.run(DemoApplication.class, args);    }    @Override    protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {        return application.sources(DemoApplication.class);    }}

暂时想到这么多,有再增加。