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"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-2.5.xsd">
<context:annotation-config />
<bean id="userDAO" class="com.bjsxt.dao.impl.UserDAOImpl">
</bean>
<bean id="u2" class="com.bjsxt.dao.impl.UserDAOImpl">
</bean>
<bean id="userService" class="com.bjsxt.service.UserService" >
</bean>
</beans>
UserDAO.javapackage com.bjsxt.dao;
import com.bjsxt.model.User;
public interface UserDAO {
public void save(User user);
}UserDAOImpl.javapackage com.bjsxt.dao.impl;import com.bjsxt.dao.UserDAO;
import com.bjsxt.model.User;
public class UserDAOImpl implements UserDAO { public void save(User user) {
//Hibernate
//JDBC
//XML
//NetWork
System.out.println("user saved!");
}}User.javapackage com.bjsxt.model;public class User {
private String username;
private String password;
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;
}
}UserService.javapackage com.bjsxt.service;
import javax.annotation.Resource;import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;import com.bjsxt.dao.UserDAO;
import com.bjsxt.model.User;public class UserService {
private UserDAO userDAO;
public void init() {
System.out.println("init");
}
public void add(User user) {
userDAO.save(user);
}
public UserDAO getUserDAO() {
return userDAO;
}
@Resource
public void setUserDAO( UserDAO userDAO) {
this.userDAO = userDAO;
System.out.println(1);
}
public void destroy() {
System.out.println("destroy");
}
}Test类
UserServiceTest.javapackage com.bjsxt.service;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;import com.bjsxt.model.User;//Dependency Injection
//Inverse of Control
public class UserServiceTest { @Test
public void testAdd() throws Exception {
ClassPathXmlApplicationContext ctx = new ClassPathXmlApplicationContext("beans.xml");
UserService service = (UserService)ctx.getBean("userService");
service.add(new User());
ctx.destroy();
}}请问大神,ClassPathXmlApplicationContext ctx = new ClassPathXmlApplicationContext("beans.xml");
UserService service = (UserService)ctx.getBean("userService");
找到id="userService"的bean,接着是调用UserService的setUserDAO();最后它是怎么调用UserDAOImpl的save()的呢?
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-2.5.xsd">
<context:annotation-config />
<bean id="userDAO" class="com.bjsxt.dao.impl.UserDAOImpl">
</bean>
<bean id="u2" class="com.bjsxt.dao.impl.UserDAOImpl">
</bean>
<bean id="userService" class="com.bjsxt.service.UserService" >
</bean>
</beans>
UserDAO.javapackage com.bjsxt.dao;
import com.bjsxt.model.User;
public interface UserDAO {
public void save(User user);
}UserDAOImpl.javapackage com.bjsxt.dao.impl;import com.bjsxt.dao.UserDAO;
import com.bjsxt.model.User;
public class UserDAOImpl implements UserDAO { public void save(User user) {
//Hibernate
//JDBC
//XML
//NetWork
System.out.println("user saved!");
}}User.javapackage com.bjsxt.model;public class User {
private String username;
private String password;
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;
}
}UserService.javapackage com.bjsxt.service;
import javax.annotation.Resource;import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;import com.bjsxt.dao.UserDAO;
import com.bjsxt.model.User;public class UserService {
private UserDAO userDAO;
public void init() {
System.out.println("init");
}
public void add(User user) {
userDAO.save(user);
}
public UserDAO getUserDAO() {
return userDAO;
}
@Resource
public void setUserDAO( UserDAO userDAO) {
this.userDAO = userDAO;
System.out.println(1);
}
public void destroy() {
System.out.println("destroy");
}
}Test类
UserServiceTest.javapackage com.bjsxt.service;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;import com.bjsxt.model.User;//Dependency Injection
//Inverse of Control
public class UserServiceTest { @Test
public void testAdd() throws Exception {
ClassPathXmlApplicationContext ctx = new ClassPathXmlApplicationContext("beans.xml");
UserService service = (UserService)ctx.getBean("userService");
service.add(new User());
ctx.destroy();
}}请问大神,ClassPathXmlApplicationContext ctx = new ClassPathXmlApplicationContext("beans.xml");
UserService service = (UserService)ctx.getBean("userService");
找到id="userService"的bean,接着是调用UserService的setUserDAO();最后它是怎么调用UserDAOImpl的save()的呢?
解决方案 »
- jsp中如何实现时间相加后转换为yyyy-mm-dd格式?
- java web主页不确定
- 请会struts2的朋友帮忙看看一段用struts2的上传,为什么就上传不了???
- 请问怎样才能暴露String 类型的属性呢?
- 有没有关于web信息抽取的源代码啊?
- 哪里有一次就可以下载完所有或大部分Eclipse_Plugins?一个一个的下好烦人啊!先提供正确下载网址者独得100分!!
- jsp在本页实现登陆
- facade模式到底是怎么回事??
- Tomcat4.1.18连接池问题:解决后加分结贴!
- jquery mobile中ajax页面在response.sendRedirect到该页面后不加载数据
- java空指针异常怎么解决
- hql分组查询的内容在web页面上用struts2标签怎么迭代显示
直接在属性上注释就可以了,少了写set方法的麻烦@Resoure UserDAO userDAO;不知道我说的够不够详细