Log4j操作
在项目开发中,我们通常会导入类似这样的日志Jar包:
关于这些日志Jar包之间的关系我也搞的不是很清楚,只能作简单的记录。
使用Log4j,可以查看到当前运行程序中对象创建的过程,也可以看到更详细的信息。Log4j适合使用在程序调试中。
例如,在本文中讲解上面的Web项目使用Log4j。
首先导入log4j的jar包,如下:
然后添加log4j配置文件——log4j.properties,添加到src目录下面,该文件内容如下:
### direct log messages to stdout ###
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.err
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n
### direct messages to file mylog.log ###
log4j.appender.file=org.apache.log4j.FileAppender
log4j.appender.file.File=d\:mylog.log
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n
### set log levels - for more verbose logging change 'info' to 'debug' ###
log4j.rootLogger=info, stdout, file
粗略讲解如下图:
IoC配置文件和注解混合使用
实际开发中,我们都会混合使用IoC配置文件和注解,一般是使用配置文件方式创建对象,使用注解方式注入属性。当然了,你亦可另辟蹊径。下面我举个例子来演示。
在src目录下创建一个cn.itcast.xmlanno包,并在该包下编写一个BookDao类、PersonDao类、BookService类。
BookDao类
public class BookDao { public void update() { System.out.println("book dao............."); } }
PersonDao类
public class PersonDao { public void update() { System.out.println("person dao............."); } }
BookService类
public class BookService { public void update() { System.out.println("service............"); } }
接着创建对象,使用配置文件实现。
<bean id="bookService" class="cn.itcast.xmlanno.BookService"></bean>
<bean id="bookDao" class="cn.itcast.xmlanno.BookDao"></bean>
<bean id="personDao" class="cn.itcast.xmlanno.PersonDao"></bean>
也有人说创建对象,能用注解就用注解,而不要写上面这种乱七八糟的东西。我觉得也蛮有道理的。
然后在BookService类里面注入BookDao类以及PersonDao类的对象,使用注解方式。
public class BookService {
@Resource(name="bookDao")
private BookDao bookDao;
@Resource(name="personDao")
private PersonDao personDao;
public void update() {
System.out.println("service............");
bookDao.update();
personDao.update();
}
}
注意,不要忘了开启注解的扫描:
<context:component-scan base-package="cn.itcast"></context:component-scan>
- 1
最后再在cn.itcast.xmlanno包下编写一个TestDemo单元测试类。
public class TestDemo {
@Test
public void testBook() {
ApplicationContext context = new ClassPathXmlApplicationContext("bean3.xml");
BookService bookService = (BookService) context.getBean("bookService");
bookService.update();
}
}
测试即可。