2-7 log4j操作

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();
    }
}

测试即可。

扫描二维码关注公众号,回复: 2195804 查看本文章

猜你喜欢

转载自blog.csdn.net/qq_38793958/article/details/80333304