spring的beans.xml的配置

时间:2023-03-09 08:05:09
spring的beans.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-2.5.xsd"> <!--接口注入,UserDAOImpl是实现UserDAO的接口类,主要就是实现数据库的操作,根据不同的数据库类型实现不同的类操作。-->
<bean id="u" class="com.bjsxt.dao.impl.UserDAOImpl">
</bean> <bean id="userService" class="com.bjsxt.service.UserService">
<!--1、set方法注入,主要用这种方法。-->
<property name="userDAO" ref="u" />
<!--2、构造方法注入-->
<!--
<constructor-arg>
<ref bean="u"/>
</constructor-arg>
-->
</bean>
</beans>

UserDAO.java如下:

 package com.bjsxt.dao;
import com.bjsxt.model.User; public interface UserDAO {
public void save(User user);
}

UserDAOImpl.java如下:

 package 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.java如下:

package 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.java如下:

 package com.bjsxt.service;
import com.bjsxt.dao.UserDAO;
import com.bjsxt.model.User; public class UserService {
private UserDAO userDAO;
/*用于beans.xml中构造方法的注入使用的;
public UserService(UserDAO userDAO){
this.userDAO=userDAO;
}
*/
public void add(User user) {
userDAO.save(user);
}
public UserDAO getUserDAO() {
return userDAO;
}
public void setUserDAO(UserDAO userDAO) {
this.userDAO = userDAO;
}
}

那么如何来使用呢?如下代码是写在测试单元中的:
UserServiceTest.java:

 package 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 {
/*读取beans.xml文件ClassPathXmlApplicationContext会把读取的内容放入到bean容器中;*/
ApplicationContext ctx = new ClassPathXmlApplicationContext("beans.xml");
/*读取注入*/
UserService service = (UserService)ctx.getBean("userService");
User u = new User();
u.setUsername("zhangsan");
u.setPassword("zhangsan");
service.add(u);
}
}