控制反转:IoC,由原来的主动创建对象,改为被动获得对象。
1.导入jar包:4个基础(必须)包,1个依赖包
2.实现service接口和目标类
3.编写配置文件:
在任意位置(习惯在classpath)创建任意(习惯applicationContext.xml)名称文件。
将配置文件的schema文件导入到项目中。在配置文件中配置servcie目标类。
<bean id="" class=""></bean>
4.测试
目录结构:
创建UserService:
package com.spring01.service;
public interface UserService {
void findUser() throws Exception;
}
创建UserService实现类UserServiceImpl
package com.spring01.service;
public class UserServiceImpl implements UserService{
@Override
public void findUser() throws Exception {
System.out.println("UserServiceImpl.findUser()");
}
}
创建bean.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:声明一个bean,java类
id:指定bean的唯一标识
class:指定bean的完全路径
-->
<bean id="UserService" class="com.spring01.service.UserServiceImpl"></bean>
</beans>
创建测试类:
package com.spring01.test;
import com.spring01.service.UserService;
import org.junit.Test;
/*import org.springframework.beans.factory.BeanFactory;*/
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class TestDemo {
@Test
public void test1() throws Exception {
ApplicationContext ac = new ClassPathXmlApplicationContext("bean.xml");
UserService us = (UserService) ac.getBean("UserService");
us.findUser();
}
}
依赖注入:DI。A对象需要依赖B对象,将B对象注入给A。
1.编写dao接口和实现类。
2.编写service接口和实现类。service实现类需要依赖dao类。
3.编写配置文件
<bean id="" class=""><property name="" ref=""></property></bean>
4.测试。
目录结构:
创建UserDao:
package com.spring03.di;
public interface UserDao {
void insertUser() throws Exception;
}
创建UserDao的实现类UserDaoImpl:
package com.spring03.di;
public class UserDaoImpl implements UserDao{
@Override
public void insertUser() throws Exception {
System.out.println("UserDaoImpl.insertUser()用户注册成功");
}
}
创建UserService:
package com.spring03.di;
public interface UserService {
void saveUser() throws Exception;
}
创建UserService实现类:
package com.spring03.di;
public class UserServiceImpl implements UserService{
private UserDao userDao;
public void setUserDao(UserDao userDao) {
this.userDao = userDao;
}
@Override
public void saveUser() throws Exception {
userDao.insertUser();
}
}
创建bean.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="UserDao" class="com.spring03.di.UserDaoImpl"></bean>
<bean id="UserService" class="com.spring03.di.UserServiceImpl">
<!-- 依赖注入
UserService对象需要依赖userDao对象 ,将userDao注入给userService
-->
<property name="userDao" ref="UserDao"></property>
</bean>
</beans>
创建测试类:
package com.spring03.di;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class TestDemo {
@Test
public void test() throws Exception{
ApplicationContext ac = new ClassPathXmlApplicationContext("bean.xml");
UserService userService = (UserService) ac.getBean("UserService");
userService.saveUser();
}
}
原文:https://www.cnblogs.com/mataoblogs/p/15145497.html