springboot(五)--log4j、jsp视图、静态资源的配置

如题,本篇我们介绍下springboot项目中的另外一些常见的配置。如日志配置(log4j)、视图配置(jsp)以及静态资源配置等。

 

一、关于springboot中的LOG4J日志支持

 SpringBoot默认是采用logback进行日志处理,Logback是由log4j创始人设计的又一个开源日志组件。然而,我们还是喜欢用log4j,因为我们大多数人的大多数项目都是使用log4j,而且配置起来也相当简单。那么如何在spring 项目中使用log4j来处理日志(而不是默认的logback)呢?

 修改pom.xml ,排除spring-boot中 默认的logging支持,引入log4j的starter支持即可。

<!-- spring-boot  web支持  -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
         <!-- 排除spring-boot中 默认的logging支持 -->
        <exclusions>
           <exclusion>
            <groupId>org.springframework.boot</groupId>
             <artifactId>spring-boot-starter-logging</artifactId>
           </exclusion>
         </exclusions>
    </dependency>
       
<!-- spring-boot log4j支持  -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-log4j</artifactId>
    <version>1.3.8.RELEASE</version>
</dependency>

log4j.properties 文件

log4j.rootLogger=info,stdout,D
#控制台日志 debug 级别
log4j.appender.stdout = org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target = System.out
log4j.appender.stdout.Threshold = debug
log4j.appender.stdout.layout = org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d [%t] %-5p [%c] - %m%n 


#文件日志  debug级别
log4j.appender.D = org.apache.log4j.DailyRollingFileAppender
log4j.appender.D.File = e:/log/springWeb/springWeb.log
log4j.appender.D.Append = true
log4j.appender.D.Threshold = debug
log4j.appender.D.layout = org.apache.log4j.PatternLayout
log4j.appender.D.layout.ConversionPattern=%d [%t] %-5p [%c] - %m%n 

二、关于springboot中JSP视图的支持

springboot中支持众多的视图,如FreeMarker 、Groovy、Thymeleaf、Mastache 以及JSP。如果需要配置jsp视图的支持,需要在pom.xml中配置内嵌tomcat、jsp、jstl的支持。

pom.xml

<!-- tomcat支持 -->
   <dependency>
       <groupId>org.springframework.boot</groupId>
       <artifactId>spring-boot-starter-tomcat</artifactId>
       <scope>provided</scope>
   </dependency>
   <dependency>
       <groupId>org.apache.tomcat.embed</groupId>
       <artifactId>tomcat-embed-jasper</artifactId>
       <scope>provided</scope>
   </dependency>
    <!-- jstl标签库 -->
    <dependency>
       <groupId>javax.servlet</groupId>
       <artifactId>jstl</artifactId>
   </dependency>

application.properties 配置jsp视图

#jsp 视图
spring.mvc.view.prefix=/WEB-INF/pages
#spring.mvc.view.suffix=.jsp

注:笔者喜欢让开发者保留JSP页面的.jsp的后缀,也建议众多开发者们保留.jsp的后缀,我的理由如下

1 一方面,这样可以让开发者清楚地知道这里是返回一个jsp页面,而不是freemarker 、velocity 、thymeleaf等模板页面 ,因为一个项目中很可能会同时存在多种视图技术,没有了.jsp后缀可能会让人产生迷惑,因为不清楚到底返回的是哪种视图页面。 

2 另一方面,返回了一个没有后缀的路径,也有可能代表服务器转发到另一个controller路径,这也非常容易给人造成疑惑。(笔者在项目中就曾遇到过这样的问题,一些初学者对于return一个路径到底是转发jsp,还是转发或重定向到controller路径经常感到迷惑甚至弄错,如此种种纠纷的诞生就是因为页面路径没有带.jsp的后缀 ,之后带上了.jsp 后,于是纷扰的世界终于清静了!!!)

3 无论怎样,只要看到项目代码中出现了return  xxx.jsp ,几乎100%能够肯定是返回到了一个jsp页面了, 这样也方面于在项目代码中ctrl+h 快速搜索 ,而如果你搜索的是xxx路径(不带.jsp后缀),你很可能会搜索到大量你不想看到的结果,浪费我们大量的工作时间。

三、关于springboot中静态资源的配置

默认配置application.properties 如下:

#静态资源访问路径 (默认规则)
spring.mvc.static-path-pattern: /**
spring.mvc.resources.static-locations:/,classpath:/META-INF/resources/,classpath:/resources/,classpath:/static/,classpath:/public/

spring.mvc.static-path-pattern: /** 表示对于任意路径的静态资源的访问

spring.mvc.resources.static-locations 表示对于以上静态的访问,存放的静态资源页面的路径都是哪是在那些地方

默认情况下,对于所有的对静态资源的访问,首先到项目根目录(通常为webapp)中找对应的资源文件,如果未找到则到classpath下的META-INF目录中找,如果还是未找到则到classpath下的resources目录中找,以此类推。静态资源的搜索顺序是按照spring.mvc.resources.static-locations 配置项所配置的顺序来的,一旦搜索到了匹配的资源,则立即停止搜索并返回搜索到的资源。

当然,绝大多数况下,我们并不需要对静态资源做什么特殊的配置,因为默认的配置已经足够好、足够人性化了。

-------------------------

application.properties中的其他配置项,如

server.port=7000   #配置内嵌servlet容器端口
server.servlet-path=/     #配置内嵌servlet容器根路径
server.context-path=/springWeb    #配置内嵌servlet容器中当前web应用的访问路径

......

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值