Set注入,基于set方法实现的,底层通过反射机制调用属性对应的set方法然后给属性赋值。这种方式要求属性必须对外提供set方法。
#pom.xml配置
<packaging>jar</packaging>
<repositories>
<repository>
<id>repository.spring.milestone</id>
<name>Spring Milestone Repository</name>
<url>https://repo.spring.io/milestone</url>
</repository>
</repositories>
<dependencies>
<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>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>6.0.0-M2</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.13.2</version>
<scope>test</scope>
</dependency>
</dependencies>
#log4j2.xml配置
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<loggers>
<root level="DEBUG">
<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>

#Dao层
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class testDao {
private static final Logger logger = LoggerFactory.getLogger(testDao.class);
public void insert(){
logger.info("testDao----");
}
}
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class UserDao {
private static final Logger logger = LoggerFactory.getLogger(UserDao.class);
public void insert(){
logger.info("insert正在被调用----");
}
}

#Service层
public class UserService {
private UserDao userDao;
private testDao testDao;
public void setUserDao(UserDao userDao) {
this.userDao = userDao;
}
public void setTestDao(com.spring6.dao.testDao testDao) {
this.testDao = testDao;
}
public void saveUser(){
userDao.insert();
testDao.insert();
}
}

#Springconfig.xml文件配置
<bean id="UserDaobean" class="com.spring6.dao.UserDao"></bean>
<bean id="testDaobean" class="com.spring6.dao.testDao"></bean>
<bean id="UserServicebean" class="com.spring6.service.UserService">
<property name="userDao" ref="UserDaobean"></property>
<property name="testDao" ref="testDaobean"></property>
</bean>

#测试类
public class Springtest {
@Test
public void testSet(){
ApplicationContext applicationContext = new ClassPathXmlApplicationContext("Springconfig.xml");
UserService userService =applicationContext.getBean("UserServicebean", UserService.class);
userService.saveUser();
}
}
