jar包
applicationContext.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-3.1.xsd "> <!-- 定义UserDao对象,并指定id为userDao --> <!-- <bean id="userDao" class="dao.impl.UserDao" /> 定义UserBiz对象,并指定id为userBiz <bean id="userBiz" class="biz.impl.UserBiz"> 为userBiz的dao属性赋值,需要注意的是,这里要调用setDao()方法 <property name="dao"> 引用id为userDao的对象为userBiz的dao属性赋值 <ref bean="userDao" /> <bean class="dao.impl.UserDao"></bean> </property> <property name="num"> <value>10</value> </property> </bean> --> <bean id="userDao" class="com.demo.dao.UserDaoImpl"></bean> <bean id="userService" class="service.UserServiceImpl"> <property name="userDao"> <ref bean="userDao"/> </property> </bean> <!-- <bean id="userDao" class="com.demo.dao.UserDaoImpl"></bean> <bean id="userService" class="service.UserServiceImpl"> <constructor-arg> <ref bean ="userDao"/> </constructor-arg> </bean> --> </beans>
UserDao.java
package com.demo.dao; import com.demo.entity.User; public interface UserDao { public void addUser(User user); }
UserDaoImpl.java
import com.demo.dao.UserDao; import com.demo.entity.User; public class UserDaoImpl implements UserDao { private UserDao userDao; public UserDao getUserDao() { return userDao; } public void setUserDao(UserDao userDao) { this.userDao = userDao; } public void addUser(User user) { System.out.println("调用数据库"); } }
User.java
package com.demo.entity; public class User { private int id; private String username; private String password; private String email; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public String getEmail() { return email; } public void setEmail(String email) { this.email = email; } public User(int id, String username, String password, String email) { super(); this.id = id; this.username = username; this.password = password; this.email = email; } public User() { super(); // TODO Auto-generated constructor stub } }
UserService
package com.demo.service; import com.demo.entity.User; public interface UserService { public void addUser(User user); }
package com.demo.service.impl; import com.demo.dao.UserDao; import com.demo.entity.User; import com.demo.service.UserService; public class UserServiceImpl implements UserService { private UserDao userDao; public UserDao getUserDao() { return userDao; } public void setUserDao(UserDao userDao) { this.userDao = userDao; } public void addUser(User user) { userDao.addUser(user); } /* public UserServiceImpl() { super(); // TODO Auto-generated constructor stub } public UserServiceImpl(UserDao userDao) { super(); this.userDao = userDao; }*/ }
IocTest.java
package com.demo.test; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; import com.demo.entity.User; import com.demo.service.UserService; public class IocTest { /** * Inverse of control 控制反转 DI 依赖注入 * aop * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml"); UserService service =(UserService)ctx.getBean("userService"); User user = new User(10,"Tom","123456","504177380@qq.com"); service.addUser(user); } }
Inverse of control 控制反转(不需要自己new对象,框架帮你完成,你使用就行了)
DI 依赖注入(属性或者构造器)