目錄
創建po對象Student1.java、Student2.java、Students.java
創建dao層UserDao.java、UserDaoImp.java
創建service層UserService.java、UserServiceImp.java
創建Controller層UserController.java
列:裝配的兩種方式
創建po對象Student1.java、Student2.java、Students.java
<?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="student1" class="com.lws.test.Student1"></bean>
<bean id="student2" class="com.lws.test.Student2"></bean>
<!-- 1裝配:根據名稱裝配 byName:對象的屬性名與實例化的Bean的名稱要一致 (默認是按名稱裝配) -->
<bean id="students" class="com.lws.test.Students" autowire="byName"></bean>
<!-- 1.2 spring裝配 按類型裝配 byType:對象的屬性名的類型與實例化的Bean的Class類型要一致 (默認是按名稱裝配) -->
<!-- <bean id="beans" class="com.iotek.spring.test6.Beans" autowire="byType"></bean> -->
</beans>
測試
public class Test {
private ClassPathXmlApplicationContext context;
@Before
public void init() {
context=new ClassPathXmlApplicationContext("beans.xml");
}
@org.junit.Test
public void students() {
Students students=(Students)context.getBean("students");
System.out.println(students);
}
}
註解裝配
創建po層User.java
創建dao層UserDao.java、UserDaoImp.java
import org.springframework.stereotype.Component;
import org.springframework.stereotype.Repository;
//@Component(value="userDaoImp")//註解的標記
@Repository(value="userDaoImp")//用於對dao層進行標註
public class UserDaoImp implements UserDao{
@Override
public void save() {
// TODO Auto-generated method stub
System.out.println("userdaoImp層實現類");
}
}
創建service層UserService.java、UserServiceImp.java
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.stereotype.Service;
import org.springframework.web.bind.annotation.ResponseBody;
//@Component(value="userServiceImp")
@Service(value="userServiceImp")//service層註解
public class UserServiceImp implements UserService {
private UserDao userDao;
@Autowired// 自動裝配默認使用類型注入.
public void setUserDao(UserDao userDao) {
this.userDao = userDao;
}
@Override
public void register() {
// TODO Auto-generated method stub
userDao.save();
System.out.println("userService層實現類--register");
}
}
創建Controller層UserController.java
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Controller;
import org.springframework.stereotype.Service;
@Controller(value="userController")
public class UserController {
@Autowired
@Qualifier("userServiceImp")//按名稱進行注入.@Service(value="userServiceImp")、可以不寫
private UserService userService;
public void setUserService(UserService userService) {
this.userService = userService;
}
public void a() {
System.out.println("UserController");
userService.register();
}
}
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"
xmlns:p="http://www.springframework.org/schema/p"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd">
<!--2註解裝配 命名空間 xmlns:context="http://www.springframework.org/schema/context"
約束http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd" -->
<!-- 掃描包下的所有的類 -->
<context:component-scan base-package="com.lws2"></context:component-scan>
</beans>
測試
private ClassPathXmlApplicationContext context;
@Before
public void init() {
context=new ClassPathXmlApplicationContext("beans2.xml");
}
//測試userDaoImp類是否實例化
@org.junit.Test
public void test1() {
UserDao userDao=(UserDao) context.getBean("userDaoImp");
userDao.save();
}
//測試userServiceImp類是否實例化
@org.junit.Test
public void test2() {
UserService aa=(UserService) context.getBean("userServiceImp");
aa.register();
}
//測試UserController類是否實例化
@org.junit.Test
public void test3() {
UserController aa=(UserController) context.getBean("userController");
aa.a();
}
結果: