Spring测试手写的Spring框架对IOC的实现-----Spring框架
原创
©著作权归作者所有:来自51CTO博客作者旧约Alatus的原创作品,请联系作者获取转载授权,否则将追究法律责任
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.powernode</groupId>
<artifactId>myspring-test</artifactId>
<version>1.0-SNAPSHOT</version>
<dependencies>
<dependency>
<groupId>org.myspringframework</groupId>
<artifactId>myspring</artifactId>
<version>1.0.0</version>
</dependency>
<!--引入Log4j2的依赖-->
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.19.0</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-slf4j2-impl</artifactId>
<version>2.19.0</version>
</dependency>
<!--JUNIT依赖-->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.13.2</version>
<scope>test</scope>
</dependency>
</dependencies>
<properties>
<maven.compiler.source>17</maven.compiler.source>
<maven.compiler.target>17</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
</project>
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<loggers>
<!--日志级别,由低到高-->
<!--ALL < TRACE < DEBUG < INFO < WARN < ERROR < FATAL < OFF-->
<root level="INFO">
<appender-ref ref="spring6log"/>
</root>
</loggers>
<appenders>
<!--输出日志到控制台-->
<console name="spring6log" target="SYSTEM_OUT">
<!--控制输出的日志格式-->
<PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss SSS} [%t] %-3level %logger{1024} - %msg%n"/>
</console>
</appenders>
</configuration>
<?xml version="1.0" encoding="UTF-8"?>
<beans>
<bean id="vip" class="com.powernode.myspring.bean.Vip">
<property name="name" value="Jack"></property>
<property name="height" value="1.8"></property>
<property name="age" value="25"></property>
</bean>
<bean id="orderDao" class="com.powernode.myspring.bean.OrderDao" >
</bean>
<bean id="orderService" class="com.powernode.myspring.bean.OrderService">
<property name="orderDao" ref="orderDao"></property>
</bean>
</beans>
package com.powernode.myspring.test;
import com.powernode.myspring.bean.OrderService;
import com.powernode.myspring.bean.Vip;
import org.junit.Test;
import org.myspringframework.core.ApplicationContext;
import org.myspringframework.core.ClassPathXmlApplicationContext;
public class MySpringTest
{
@Test
public void Test()
{
ApplicationContext applicationContext = new ClassPathXmlApplicationContext("myspring.xml");
Vip vip = (Vip) applicationContext.getBean("vip");
System.out.println(vip);
OrderService orderService = (OrderService) applicationContext.getBean("orderService");
orderService.generate();
}
}
package com.powernode.myspring.bean;
public class OrderService
{
private OrderDao orderDao;
public void generate()
{
orderDao.insert();
}
public void setOrderDao(OrderDao orderDao) {
this.orderDao = orderDao;
}
}
package com.powernode.myspring.bean;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class OrderDao
{
private static final Logger logger = LoggerFactory.getLogger(OrderDao.class);
public void insert()
{
logger.info("正在保存订单信息");
}
}
package com.powernode.myspring.bean;
public class Vip
{
private String name;
private int age;
private double height;
@Override
public String toString() {
return "Vip{" +
"name='" + name + '\'' +
", age=" + age +
", height=" + height +
'}';
}
public void setName(String name) {
this.name = name;
}
public void setAge(int age) {
this.age = age;
}
public void setHeight(double height) {
this.height = height;
}
}