创建Spring核心文件
实例化方法
<?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="userDao" class="com.itheima.dao.impl.UserDaoImpl"></bean>
<!-- 通过工厂静态方法实例化对象-->
<bean id="userDao" class="com.itheima.factory.StaticFactoryBean"
factory-method="createUserDao" />
<!-- 通过工厂方法实例化对象-->
<bean id="factoryBean" class="com.itheima.factory.DynamicFactoryBean"/>
<bean id="userDao" factory-bean="factoryBean" factory-method="createUserDao"/>
创建UerDao接口
public interface UserDao {
public void save();
}
创建UserDaoImpl实现类
public class UserDaoImpl implements UserDao {
public void save() {
System.out.println("save running....");
}
}
静态工厂类
public class StaticFactory {
public static UserDao getUserDao(){
return new UserDaoImpl();
}
}
工厂类
public class DynamicFactory {
public UserDao getUserDao(){
return new UserDaoImpl();
}
}
之后就是通过Spring的api获得bean实例化
@Test
public void test1(){
ApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml");
UserDao userDao = (UserDao) applicationContext.getBean("userDao");
userDao.save();
}
依赖注入
创建service类
Userservice接口
public interface UserService {
public void save();
}
Userservice的实现类
public class UserServiceImpl implements UserService {
private UserDao userDao;
public UserServiceImpl(UserDao userDao) {
this.userDao = userDao;
}
public UserServiceImpl() {
}
/*public void setUserDao(UserDao userDao) {
this.userDao = userDao;
}*/
public void save() {
userDao.save();
}
}
依赖注入有两种方法
1.通过构造方法
通过Spring注入参数
<bean id="userDao" class="com.itheima.dao.impl.UserDaoImpl"/>
<bean id="userService" class="com.itheima.service.impl.UserServiceImpl">
<constructor-arg name="userDao" ref="userDao"></constructor-arg>
</bean>
<!--这里通过spring容器生成userDao对象返回给userService中的构造函数给userDao赋值-->
2.通过set方法
public void setUserDao(UserDao userDao) {
this.userDao = userDao;
}
public void save() {
userDao.save();
}
通过Spring容器注入参数
<bean id="userDao" class="com.itheima.dao.impl.UserDaoImpl"/>
<bean id="userService" class="com.itheima.service.impl.UserServiceImpl">
<property name="userDao" ref="userDao"/>
</bean>
<!--这里配置方法和使用构造方法一致-->
之后在测试类中实现
@Test
void Test_sv()
{ ApplicationContext app = new ClassPathXmlApplicationContext("applicationContext.xml");
UserService Userservice = (UserService) app.getBean("userService");
Userservice.save();
}
}
依赖注完成
会在后期学习中改进