项目运行后为什么不产生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">-->
<!--<!–设置属性–>-->
<!--<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、首先同学的代码中,Test引入的包是错误的,应该是 import org.junit.Test;
2、同学的配置文件中,没有配置名为UserService的bean,这一部分是注释掉的呢
3、Demo1的测试是不会产生log4j的日志信息的,因为demo1()中是直接new创建的对象,没有使用到Spring呢
如果解答了同学的疑问,望采纳~
祝学习愉快~
相似问题
登录后可查看更多问答,登录/注册
- 参与学习 人
- 提交作业 205 份
- 解答问题 4317 个
Java中非常实用的SSM整合开发内容,从Spring开始,到MyBaits的进阶内容,再到SpringMVC的应用,最后是SSM整合开发案例,逐步深入,助你成长为一名Java工程师!
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星