目地是学会让spring容器为我们去创建需要的对象
1,创建项目
2,导入spring的基础包
解压下载的zip包,lib文件夹中的特点,都有3个jar包
我们目标只需要spring的基本功能,导入核心容器的6个核心jar包即可
3,导入日志包
4,创建UserDAO接口
public interface UserDAO {
User queryById(int id);
}
5,创建UserDAOImpl实现类
public class UserDAOImpl implements UserDAO {
@Override
public User queryById(int id) {
User user=null;
switch (id) {
case 1:
user=new User(1, "老雷", "武汉");
break;
case 2:
user=new User(2, "老张", "武汉");
break;
case 3:
user=new User(3, "老周", "重庆");
break;
}
return user;
}
}
6,创建appliactionContext.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.sxt.dao.impl.UserDAOImpl"></bean>
</beans>
7,导入log4j.properties文件
# Global logging configuration
log4j.rootLogger=DEBUG, stdout
# MyBatis logging configuration...
log4j.logger.org.mybatis.example.BlogMapper=TRACE
# Console output...
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n
8,测试
@Test
public void testIoc2(){
ApplicationContext app=new ClassPathXmlApplicationContext("classpath:applicationContext.xml");
UserDAO dao=(UserDAO) app.getBean("userDAO");
System.out.println(dao.queryById(1));
}
9,使用ioc/di的配置service和action
UserServiceI的配置
public class UserServiceImpl implements UserService{
private UserDAO userDAO;
public UserDAO getUserDAO() {
return userDAO;
}
public void setUserDAO(UserDAO userDAO) {
this.userDAO = userDAO;
}
@Override
public User queryById(int id) {
return userDAO.queryById(id);
}
}
UserAction的配置
public class UserAction {
UserService userService;
public UserService getUserService() {
return userService;
}
public void setUserService(UserService userService) {
this.userService = userService;
}
public void queryByid(){
User user = userService.queryById(1);
System.out.println(user);
}
}
修改appliactionContext.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.sxt.dao.impl.UserDAOImpl"></bean>
<bean id="userService" class="com.sxt.service.impl.UserServiceImpl">
<property name="userDAO" ref="userDAO"></property>
</bean>
<bean id="userAction" class="com.sxt.action.UserAction">
<property name="userService" ref="userService"></property>
</bean>
</beans>
测试
@Test
public void testIoc3(){
//让容器去为我们创建对象
ApplicationContext app=new ClassPathXmlApplicationContext("classpath:applicationContext.xml");
UserAction action=(UserAction) app.getBean("userAction");
action.queryByid();
}