<?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;
    }
}