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();
}
}
測試即可。