* Spring配置註解
* @Component
* @Repository
* @Service
* @Controller
*
* 使用@Autowired 自動裝配
* @Qualifier 指定裝配的名字
*
*/
測試類:
package com.spring.test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import com.spring.controller.UserController;
public class Test {
public static void main(String[] args) {
ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml");
/**
* Spring配置註解
* @Component
* @Repository
* @Service
* @Controller
*
* 使用@Autowired 自動裝配
* @Qualifier 指定裝配的名字
*
*/
UserController userController = (UserController) ctx.getBean("userController");
userController.save();
}
}
Controller部分:
package com.spring.controller;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import com.spring.service.UserService;
@Controller
public class UserController {
@Autowired
private UserService service;
public void save(){
service.save();
}
}
Service部分:
package com.spring.service;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Service;
import com.spring.dao.UserDao;
@Service
public class UserService {
@Autowired
@Qualifier("userDao")
private UserDao userDao;
public void save(){
userDao.save();
}
}
Dao部分:
package com.spring.dao;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;
import com.spring.bean.User;
@Repository("userDao")
public class UserDao {
@Autowired
private User user;
public void save() {
// TODO Auto-generated method stub
user.setUserName("SuperMan");
System.out.println(user + " == userDaoSave");
}
}
VO部分:
package com.spring.bean;
import org.springframework.stereotype.Component;
@Component
public class User {
private String userName;
public User() {
super();
// TODO Auto-generated constructor stub
}
public User(String userName) {
super();
this.userName = userName;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
@Override
public String toString() {
return "User [userName=" + userName + "]";
}
}
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"
xmlns:context="http://www.springframework.org/schema/context"
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-4.1.xsd">
<!-- use-default-filters="false" 使用默認scan的annotation,如果爲false,則只使用include-flter的annotation -->
<context:component-scan base-package="com.spring" >
<!--
排除Annotation, 指定Annotaion無效 (type=annotation)
<context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
-->
<!--
指定Annotation有效
<context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
-->
<!--
指定類(及子類)無效 (type=assignable)
<context:exclude-filter type="assignable" expression="com.spring.controller.UserController"/>
-->
<!-- <context:include-filter type="assignable" expression="com.spring.controller.UserController"/> -->
</context:component-scan>
</beans>