首 先log4j和视图解析viewResolvers在spring管理的项目中常用到,而且每次没有配置好log4j,IDE集成工具的控制台都不好看到 输出日志。另外视图解析viewResolvers的运用可以帮我们过滤web项目访问的路径的前缀和后缀。所以,我想把这两个频繁的配置整理一下。
(1)先小结log4j的配置。这里是spring3.1.2环境项目下的配置,我们先在项目中导入log4j.jar包,在项目的web.xml配置中
我加入上下文的配置文件的映入:代码如下:
1 |
< context-param >
|
2 |
< param-name >contextConfigLocation</ param-name >
|
3 |
< param-value >
|
4 |
classpath*:applicationContext.xml
|
5 |
</ param-value >
|
6 |
</ context-param >
|
接着我们在applicationContext.xml的上下文配置文件中
加入log4j的属性文件:代码如下
1 |
< context:property-placeholder ignore-resource-not-found = "true"
|
2 |
location = "classpath*:application.properties,log4j.properties" />
|
这里你只要加入log4j.properties属性文件就可以了,application.properties是我的数据库配置文件,你不加
。其中log4j.properties属性文件:
1 |
log4j.rootLogger=INFO, A1 |
2 |
log4j.appender.A1=org.apache.log4j.ConsoleAppender |
3 |
log4j.appender.A1.layout=org.apache.log4j.PatternLayout |
4 |
log4j.appender.A1.layout.ConversionPattern=%m%n |
1: 其中,属性INFO是日志的输出的级别,一般发布的时候用INFO,开发用 DEBUG
等级可分为OFF、FATAL、ERROR、WARN、INFO、DEBUG、ALL,如果配置OFF则不打出任何信息,如果配置为INFO这样只显示INFO, WARN, ERROR的log信息,而DEBUG信息不会被显示
2: log4j.appender.A1=org.apache.log4j.ConsoleAppender
此句为定义名为A1的输出端是哪种类型,可以是
org.apache.log4j.ConsoleAppender(控制台),
org.apache.log4j.FileAppender(文件),
org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件),
org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件)
org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方)
3:
log4j.appender.A1.layout.ConversionPattern= [QC] %p [%t] %C.%M(%L) | %m%n
如果使用pattern布局就要指定的打印信息的具体格式ConversionPattern,打印参数如下:
%m 输出代码中指定的消息
%p 输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL
%r 输出自应用启动到输出该log信息耗费的毫秒数
%c 输出所属的类目,通常就是所在类的全名
%t 输出产生该日志事件的线程名
%n 输出一个回车换行符,Windows平台为“rn”,Unix平台为“n”
%d 输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyyy MMM dd HH:mm:ss,SSS},输出类似:2002年10月18日 22:10:28,921
%l 输出日志事件的发生位置,包括类目名、发生的线程,以及在代码中的行数。
4:
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
此句为定义名为A1的输出端的layout是哪种类型,可以是
org.apache.log4j.HTMLLayout(以HTML表格形式布局),
org.apache.log4j.PatternLayout(可以灵活地指定布局模式),
org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串),
org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息)
这样你的log4j的生产环境就配置好了,之后运行你的项目中,tomcat和控制台可以看到日志的输入了。
(2)接着继续分析spring的视图的解析viewResolvers
1:首先我们还是在项目的web.xml配置文件中加入代码:
01 |
< servlet >
|
02 |
< servlet-name >springMVC</ servlet-name >
|
03 |
< servlet-class >org.springframework.web.servlet.DispatcherServlet</ servlet-class >
|
04 |
< init-param >
|
05 |
< param-name >contextConfigLocation</ param-name >
|
06 |
< param-value >
|
07 |
classpath*:/mvc/applicationContext-mvc.xml
|
08 |
</ param-value >
|
09 |
</ init-param >
|
10 |
< load-on-startup >1</ load-on-startup >
|
11 |
</ servlet >
|
servlet初始化好Spring MVC的上下文applicationContext-mvc.xml配置文件
applicationContext-mvc.xml文件中,我们加入代码:
01 |
< bean class = "org.springframework.web.servlet.view.ContentNegotiatingViewResolver" >
|
02 |
<!-- 设置为true以忽略对Accept Header的支持(浏览器不同有可能不同)-->
|
03 |
< property name = "ignoreAcceptHeader" value = "true" />
|
04 |
05 |
<!-- 在没有扩展名时即: "/user/1" 时的默认展现形式 -->
|
06 |
< property name = "defaultContentType" value = "text/html" />
|
07 |
08 |
<!-- 扩展名至mimeType的映射,即 /user.json => application/json -->
|
09 |
< property name = "mediaTypes" >
|
10 |
< map >
|
11 |
< entry key = "json" value = "application/json" />
|
12 |
<!-- <entry key="xml" value="application/xml" /> -->
|
13 |
< entry key = "htm" value = "text/html" />
|
14 |
< entry key = "do" value = "text/html" />
|
15 |
< entry key = "qd" value = "text/html" />
|
16 |
</ map >
|
17 |
</ property >
|
18 |
19 |
< property name = "viewResolvers" >
|
20 |
< list >
|
21 |
< bean class = "org.springframework.web.servlet.view.InternalResourceViewResolver" >
|
22 |
< property name = "prefix" value = "/pages/" />
|
23 |
< property name = "suffix" value = ".jsp" ></ property >
|
24 |
</ bean >
|
25 |
26 |
</ list >
|
27 |
</ property >
|
28 |
29 |
< property name = "defaultViews" >
|
30 |
< list >
|
31 |
< bean class = "org.springframework.web.servlet.view.json.MappingJacksonJsonView" />
|
32 |
<!--<bean class="com.daguu.base.view.MappingFastJsonView"/>-->
|
33 |
</ list >
|
34 |
</ property >
|
35 |
36 |
</ bean >
|
解释一下配置文件:
在Spring MVC中,因为ViewResolver是使用bean来配置的,所以扩展起来非常的容易,可以根据自己的需要定制ViewResolver,其中属性prefix是视图的前缀,suffix是视图的后缀,这里以我的路径来解释:
看我的这个项目路径,这里我逻辑路径是/pages/index.jsp经过滤和配置中
1 |
< entry key = "htm" value = "text/html" />
|
类型转换后,最后我们的逻辑路径是index.htm
ViewResolver接口是在DispatcherServlet中进行调用的,当DispatcherServlet调用完Controller 后,会得到一个ModelAndView对象,然后DispatcherServlet会调用render方法进行视图渲染。
这句话很重要,我们之前在web.xml中已经初始化了servlet了,接着我写出我的Controller控制类,通过它去转到jsp页面:
Controller类:
@Controller
@RequestMapping("/")
public class AuthController extends BaseControllerSupport{
@Resource
private BlogsService blogsService;
@RequestMapping("/index")
public String index(Model model, Page<Blog> page) {
blogsService.getBlogsList(page);
model.addAttribute("page", page);
return "index";
}
这里你只要关注
RequestMapping("/index")和return “index”即可,
在webapps的根目录下:
在index.jsp中写上基本路径和重定向的路径:
<%@ page language="java" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme() + "://" + request.getServerName() + ":" +
request.getServerPort() + path + "/";
response.sendRedirect(basePath+"index.htm");
%>
这样我们访问/pages/index.jsp的流程就是这样的,启动tomcat之后,先在web.xml中初始化
servlet和配置文件→appicationContext-mvc.xml过滤之后→Contrller类中return到webapps根目
录下的index.jsp中→重定向sendRedirect到index.htm(如果你是本地服务器的话,地址会是
http://localhost:8080/index.htm)
这就是我理解的spring MVC的视图解析ViewResolver
以上是我对log4j和ViewResolver两种常见配置自己的理解。
相关推荐
几乎是网上 能找到的 日志脱敏的所有实现 1、基于正则表达式的 日志脱敏实现 ,扩展logback 、log4j 2、springmvc 返回报文脱敏。 3、基于注解方式的脱敏。 大家选择使用。
日志管理:SLF4J 1.7 + Log4j2 2.7 工具类:Apache Commons、Jackson 2.2、fastjson 1.2.20 前端技术 JS框架:Jquery 表格插件:Bootstrap Table 表单验证插件:BootstrapValidator 日期选择插件:Datepicker for ...
SingleJDBCBase 是基于Spring Framework基础上搭建的一个Java基础开发套件,以Spring MVC为模型视图控制器,JDBC为数据访问层。...* 日志管理:SLF4J 1.7.25、Log4j2.8.2 * 工具类:fasterxml 2.8.7、junit 4.12、
ssm(spring+spring mvc+mybatis)高仿小米电子商城项目实例 开发环境:Eclipse ,JDK 1.8 ,Tomcat7 技术选型: 后端技术 核心框架:Spring Framework 4.3.5 视图框架:Spring MVC 4.3.5 任务调度:Spring + ...
弃用了struts,用spring mvc框架做了几个项目,感觉都不错,而且使用了注解方式,可以省掉一大堆配置文件。本文主要介绍使用注解方式配置的spring mvc,之前写的spring3.0 mvc和rest小例子没有介绍到数据层的内容,...
6.3.1 配置Log4j 6.3.2 配置根Logger 6.3.3 指定日志输出位置 6.3.4 指定日志输出格式 6.3.5 指定日志输出优先级 6.3.6 在代码中使用Log4j 6.4 改进Log4j 6.5 小结 第七章 Ant使用指南 7.1 Ant介绍 7.1.1 Ant简介 ...
日志管理:SLF4J 1.7 + Log4j2 2.7 布局框架:SiteMesh 3.0.1 分布式应用程序协调服务:ZooKeeper 3.3.1 分布式服务框架:Dubbo 2.5.3 接口测试框架:Swagger2 2.6.1 工具类:Apache Commons、Jackson 2.2、fastjson...
6.3.1 配置Log4j 6.3.2 配置根Logger 6.3.3 指定日志输出位置 6.3.4 指定日志输出格式 6.3.5 指定日志输出优先级 6.3.6 在代码中使用Log4j 6.4 改进Log4j 6.5 小结 第七章 Ant使用指南 7.1 Ant介绍 7.1.1 Ant简介 ...
6.3.1 配置Log4j 6.3.2 配置根Logger 6.3.3 指定日志输出位置 6.3.4 指定日志输出格式 6.3.5 指定日志输出优先级 6.3.6 在代码中使用Log4j 6.4 改进Log4j 6.5 小结 第七章 Ant使用指南 7.1 Ant介绍 7.1.1 Ant简介 ...
SingleMyBatis 是基于Spring Framework基础上搭建的一个Java基础开发套件,以Spring MVC为模型视图控制器,MyBatis为数据访问层。...* 日志管理:SLF4J 1.7.25、Log4j2.8.2 * 工具类:fasterxml 2.8.7、junit 4.12、
SingleHibernate 是基于Spring Framework基础上搭建的一个Java基础开发套件,以Spring MVC为模型视图控制器,Hibernate为数据访问层...* 日志管理:SLF4J 1.7.25、Log4j2.8.2 * 工具类:fasterxml 2.8.7、junit 4.12、
外部依赖Commons Logging, (Log4J)。 spring-beans.jar(必须):这 个jar 文件是所有应用都要用到的,它包含访问配置文件、创建和管理bean 以及进行Inversion of Control / Dependency Injection(IoC/DI)操作...
A.4 Spring与Log4j 附录B 用(和不用)Spring进行测试 B.1 测试简介 B.1.1 理解不同类型的测试 B.1.2 使用JUnit B.1.3 Spring在测试中的角色 B.2 单元测试Spring MVC控制器 B.2.1 模拟对象 B.2.2 断言...
A.4 Spring与Log4j 附录B 用(和不用)Spring进行测试 B.1 测试简介 B.1.1 理解不同类型的测试 B.1.2 使用JUnit B.1.3 Spring在测试中的角色 B.2 单元测试Spring MVC控制器 B.2.1 模拟对象 B.2.2 断言...
6.3.1 配置Log4j 6.3.2 配置根Logger 6.3.3 指定日志输出位置 6.3.4 指定日志输出格式 6.3.5 指定日志输出优先级 6.3.6 在代码中使用Log4j 6.4 改进Log4j 6.5 小结 第七章 Ant使用指南 7.1 Ant介绍 7.1.1 Ant简介 ...
日志管理:Log4j 工具类:Apache Commons、FastJson 2、前端 JS框架:jQuery CSS框架:Bootstrap 客户端验证:JQuery-html5Validate 数据表格:jqGrid 树结构控件:jQuery zTree 日期控件: LayDate 图表控件:...
#技术框架 核心框架:Spring Boot ...日志管理:Log4j 构建管理:Maven CSS框架:layui #使用外部组件 LibrOffice 用于把文档转为pdf SWFTools 用于把pdf转成swf zbus 用到了Zbus MQ处理转换的队列(ps:其实可以不用)
bank_web_application Java,Spring MVC,Oracle技术领域Tomcat 8.0.21 Web... Log4j 1.2.17,用于记录系统中的所有操作Sitemesh 3.0-alpha-2用于将视图(jsp页面)拆分为多个组件。对于客户: 对于员工: 对于管理员:
日志管理: slf4j 1.7.5+ log4j2 Mybatis 分页插件: pagehelper 6.1.2 短信验证服务: 阿里云短信服务 任务调度: quartz 数据库连接池: druid 安全管理框架: shiro 验证码库: kaptcha 三.前端技术 JS框架:Jquery ...
日志管理:SLF4J、LOGBACKUP 工具类:Apache Commons、FastJson、EASYPOI、BladeToolBox 2、前端 JS框架:jQuery CSS框架:Twitter Bootstrap 客户端验证:JQuery-html5Validate 富文本:KindEcitor 数据...