使用@Inject实例化Logger,jsr330
来源:互联网 发布:淘宝新店铺怎么引流量 编辑:程序博客网 时间:2024/06/07 02:18
这里用大的是jsr330的技术java CDI ,其只要实现是weld,weld-servlet-1.1.8.Final.jar。
进入实例正题:
一:所需要的jar有:log4j-1.2.17.jar slf4j-api-1.7.21.jar slf4j-log4j12-1.7.21.jar weld-servlet-1.1.8.Final.jar
另外我的myeclipse spring2014继承了javaee6的一些jar。
这里我是new web project然后选择javaee6,所以也依赖了很多其他jar。
二:
1在src下有一个文件夹META-INF放了一个文件beans.xml,内容是
==
<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/beans_1_0.xsd"></beans>
==
2配置web.xml 中有一个Lister
==
<listener><listener-class>org.jboss.weld.environment.servlet.Listener</listener-class></listener>
==
3还有一个log4j的配置文件在src下:log4j.properties
==
log4j.rootLogger=WARN, stdout, Rlog4j.appender.stdout=org.apache.log4j.ConsoleAppenderlog4j.appender.stdout.layout=org.apache.log4j.PatternLayoutlog4j.appender.stdout.layout.ConversionPattern=%L %d [%t] %-5p %c - %m%nlog4j.appender.R=org.apache.log4j.RollingFileAppenderlog4j.appender.R.File=example.loglog4j.appender.R.MaxFileSize=100KBlog4j.appender.R.MaxBackupIndex=1log4j.appender.R.layout=org.apache.log4j.PatternLayoutlog4j.appender.R.layout.ConversionPattern=%p %t %c - %m%nlog4j.logger.com.foo=WARN
==
4 代码
==
import javax.enterprise.inject.Produces;import javax.enterprise.inject.spi.InjectionPoint;import org.slf4j.Logger;import org.slf4j.LoggerFactory;//@Dependent没有也可以//@Singletonpublic class LoggerProducer {@Producespublic Logger produceLogger(InjectionPoint injectionPoint) {return LoggerFactory.getLogger(injectionPoint.getMember().getDeclaringClass());}}
==
Servlet代码
==
import java.io.IOException;import javax.inject.Inject;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import org.slf4j.Logger;public class A extends HttpServlet {@Injectprivate Logger logger;public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {logger.info("123");logger.error("ccc");}public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {}}
==
这里的Logger到时候和传统的获取方式一致。
0 0
- 使用@Inject实例化Logger,jsr330
- spring支持JCP的JSR330规范,使用javax.inject
- @Inject 使用
- org.apache.log4j.Logger的使用实例
- 使用Logger
- logger使用
- [Ruby] inject的使用
- [C#] 程序实例中使用多份log4net logger
- inject
- @Inject
- @Inject
- log4j创建Logger实例解读
- 使用felix.log.logger重写Logger
- java Logger 的使用
- Flex Logger的使用
- JDK Logger使用举例
- java logger使用
- Java-Logger简单使用
- volatile的理解
- 博客书写-教师节收益
- 用glew,glfw实现opengl学习笔记5课纹理(2)
- 缓存使用总结
- UEditor删除字数统计和元素路径
- 使用@Inject实例化Logger,jsr330
- HDU2066-一个人的旅行(Dijkstra算法+Floyd算法)
- nginx学习(五)——nginx的配置系统1
- 第一行代码酷欧天气开发(五)
- centos 6.5 git服务器的搭建
- 华为笔试题
- 洛谷 P2327 [SCOI2005] 扫雷
- Android 6.0 运行时权限管理最佳实践
- [经验之谈]数据库查询速度优化之解决技巧