spring boot的一些配置应用

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);
    }

}

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值