项目运行后为什么不产生log4j的日志信息?

项目运行后为什么不产生log4j的日志信息?

applicationConfig.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">

   <!--<bean id="userService" class="com.imooc.ioc.demo1.UserServiceImpl">-->
       <!--&lt;!&ndash;设置属性&ndash;&gt;-->
       <!--<property name="name" value="李四"/>-->
   <!--</bean>-->

   <!--bean的三种构造方式:无参构造器的方式-->
   <!--<bean id="bean1" class="com.imooc.ioc.demo2.Bean1" />-->

   <!--bean的三种构造方式:静态工厂的方式-->
   <!--<bean id="bean2" class="com.imooc.ioc.demo2.Bean2Factory" factory-method="createBean2"/>-->

   <!--bean的三种构造方式:实例工厂实例化的方式-->
   <!--<bean id="bean3Factory"  class="com.imooc.ioc.demo2.Bean3Factory" />-->
   <!--<bean id="bean3" factory-bean="bean3Factory" factory-method="createBean3"/>-->

   <!--bean的作用范围-->
   <!--<bean id="person" class="com.imooc.ioc.demo3.Person" scope="singleton"/>-->

   <!--<bean id="man" class="com.imooc.ioc.demo3.Man" init-method="setup" destroy-method="teardown">-->
       <!--<property name="name" value="张三"/>-->
    <!--</bean>-->
   <!--无需配置id属性,因为没有地方使用这个bean-->
   <bean class="com.imooc.ioc.demo3.MyBeanPostProcessor"/>
   <bean id="userDao" class="com.imooc.ioc.demo3.UserDaoImpl"/>

</beans>

springDemo1.java


package com.imooc.ioc.demo1;

import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.BeanFactory;
import org.springframework.beans.factory.xml.XmlBeanFactory;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.context.support.FileSystemXmlApplicationContext;
import org.springframework.core.io.ClassPathResource;

public class springDemo1 {

   @Test
   /**
    * 传统方式实例化bean,耦合程度高,有背ocp原则
    */
   public void demo1(){
//        UserService userService=new UserServiceImpl();
       UserServiceImpl userService=new UserServiceImpl();
       userService.setName("张三");
       userService.sayHello();
   }

   @Test
   /**
    * 创建Spring工厂
    */
   public void demo2(){
       ApplicationContext applicationContext=new ClassPathXmlApplicationContext("applicationConfig.xml");
       UserService userService= (UserService) applicationContext.getBean("userService");
       userService.sayHello();
   }
   @Test
   /**
    * 读取磁盘系统中的配置文件
    */
   public void demo3(){
       //创建spring的工厂类:
       ApplicationContext applicationContext=new FileSystemXmlApplicationContext("d:/upload/applicationConfig.xml");
       UserService userService= (UserService) applicationContext.getBean("userService");
       userService.sayHello();
   }

   @Test
   /**
    * 使用传统方式的工厂类:BeanFactory,是ApplicationContext的父接口
    */
   public void demo4(){
       //创建工厂类
       BeanFactory beanFactory = new XmlBeanFactory(new ClassPathResource("applicationConfig.xml"));
       UserService userService = (UserService) beanFactory.getBean("userService");
       userService.sayHello();
   }
}


UserService.java

package com.imooc.ioc.demo1;

public interface UserService {
   void sayHello();
}


UserServiceImpl.java

package com.imooc.ioc.demo1;

public class UserServiceImpl implements UserService {

   private  String name;

   public String getName() {
       return name;
   }

   public void setName(String name) {
       this.name = name;
   }

   @Override
   public void sayHello() {
       System.out.println("Hello spring"+name);
   }
}

正在回答

登陆购买课程后可参与讨论,去登陆

1回答

同学你好。

1、首先同学的代码中,Test引入的包是错误的,应该是 import org.junit.Test;

http://img1.sycdn.imooc.com//climg/5e09dcf70900e5df07190469.jpg

2、同学的配置文件中,没有配置名为UserService的bean,这一部分是注释掉的呢

http://img1.sycdn.imooc.com//climg/5e09dd1009f5440308320463.jpg


3、Demo1的测试是不会产生log4j的日志信息的,因为demo1()中是直接new创建的对象,没有使用到Spring呢

http://img1.sycdn.imooc.com//climg/5e09dd4209e44c2d08180778.jpg


如果解答了同学的疑问,望采纳~

祝学习愉快~

  • 慕沐8221787 提问者 #1
    junit换成你说的包也不行,代码注释是发给你的时候注释了,运行时怎么可能注释掉呢。
    2019-12-31 14:46:16
  • 芝芝兰兰 回复 提问者 慕沐8221787 #2
    同学说不行的具体是哪个方法呢?demo几呀?
    2019-12-31 16:33:03
  • 慕沐8221787 提问者 #3
    全部demo方法执行后都不产生日志信息
    2019-12-31 16:53:15
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
SSM主流框架入门与综合项目实战2018版
  • 参与学习           人
  • 提交作业       205    份
  • 解答问题       4317    个

Java中非常实用的SSM整合开发内容,从Spring开始,到MyBaits的进阶内容,再到SpringMVC的应用,最后是SSM整合开发案例,逐步深入,助你成长为一名Java工程师!

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师