Spring中的註解@Service @Component @Controller @Repository區別

@Service用於標註業務層組件,java

@Controller用於標註控制層組件(如struts中的action),spring

@Repository用於標註數據訪問組件,即DAO組件,app

@Component泛指組件,當組件很差歸類的時候,咱們可使用這個註解進行標註。ide

 

這四個註解其實都是和Component差很少只是在語義上有些不同,修飾的方法測試

請看下面的一個例子spa

dao層3d

 1 package cn.lonecloud.pagekageauto.dao;
 2 
 3 
 4 /**
 5  * dao層的接口
 6  * @Title: UserDao.java
 7  * @Package cn.lonecloud.pagekageauto.dao
 8  * @Description: 
 9  * @author lonecloud
10  * @date 2016年8月7日 上午11:49:47
11  */
12 public interface UserDao {
13     
14     public void save();
15 }
View Code

dao層實現類code

 1 package cn.lonecloud.pagekageauto.dao.impl;
 2 
 3 import org.springframework.stereotype.Repository;
 4 
 5 import cn.lonecloud.pagekageauto.dao.UserDao;
 6 /**
 7  * dao層的實現類
 8  * @Title: UserDaoImpl.java
 9  * @Package cn.lonecloud.pagekageauto.dao.impl
10  * @Description: 
11  * @author lonecloud
12  * @date 2016年8月7日 上午11:50:04
13  */
14 @Repository
15 public class UserDaoImpl implements UserDao {
16 
17     @Override
18     public void save() {
19         System.out.println("測試保存");
20     }
21     //進行業務代碼的實現
22 }
View Code

Service層blog

 1 package cn.lonecloud.pagekageauto.service;
 2 /**
 3  * service接口
 4  * @Title: UserService.java
 5  * @Package cn.lonecloud.pagekageauto.service
 6  * @Description: 
 7  * @author lonecloud
 8  * @date 2016年8月7日 上午11:50:20
 9  */
10 public interface UserService {
11     public void Usersave();
12 }
View Code

service實現類接口

 1 package cn.lonecloud.pagekageauto.service.Impl;
 2 
 3 import org.springframework.beans.factory.annotation.Autowired;
 4 import org.springframework.stereotype.Service;
 5 
 6 import cn.lonecloud.pagekageauto.dao.UserDao;
 7 import cn.lonecloud.pagekageauto.service.UserService;
 8 
 9 /**
10  * service的實現類    
11  * @Title: UserServiceImpl.java
12  * @Package cn.lonecloud.pagekageauto.service.Impl
13  * @Description: 
14  * @author lonecloud
15  * @date 2016年8月7日 上午11:50:36
16  */
17 @Service
18 public class UserServiceImpl implements UserService{
19     //下面進行業務代碼的實現
20     @Autowired//自動注入
21     UserDao userDao;
22 
23     @Override
24     public void Usersave() {
25         // TODO Auto-generated method stub
26         System.out.println("service執行保存方法");
27         userDao.save();
28     }
29     
30 }
View Code

dto中間類

 1 package cn.lonecloud.pagekageauto.dto;
 2 
 3 import org.springframework.stereotype.Component;
 4 /**
 5  * 中間類
 6  * @Title: DtoClass.java
 7  * @Package cn.lonecloud.pagekageauto.dto
 8  * @Description: 
 9  * @author lonecloud
10  * @date 2016年8月7日 上午11:51:46
11  */
12 @Component
13 public class DtoClass {
14     public void say(){
15         System.out.println("我是dto");
16     }
17 }
View Code

控制層

 1 package cn.lonecloud.pagekageauto.Controller;
 2 
 3 import org.springframework.beans.factory.annotation.Autowired;
 4 import org.springframework.stereotype.Controller;
 5 
 6 import cn.lonecloud.pagekageauto.dto.DtoClass;
 7 import cn.lonecloud.pagekageauto.service.UserService;
 8 /**
 9  * 控制層類
10  * @Title: UserController.java
11  * @Package cn.lonecloud.pagekageauto.Controller
12  * @Description: 
13  * @author lonecloud
14  * @date 2016年8月7日 上午11:50:56
15  */
16 @Controller
17 public class UserController {
18     
19     @Autowired
20     private UserService userService;
21     @Autowired
22     public DtoClass dtoClass;
23     /**
24      * 保存方法
25      * @Description:
26      */
27     public void save(){
28         System.out.println("控制層save");
29         dtoClass.say();
30         userService.Usersave();
31     }
32 }
View Code

測試類

 1 package cn.lonecloud.test.autoTest;
 2 
 3 import org.junit.Before;
 4 import org.junit.Test;
 5 import org.springframework.context.ApplicationContext;
 6 
 7 import cn.lonecloud.pagekageauto.UserBean;
 8 import cn.lonecloud.pagekageauto.Controller.UserController;
 9 import cn.lonecloud.util.SpringUtil;
10 
11 public class MyTest {
12     ApplicationContext applicationContext = null;
13 
14     @Before
15     public void before() {
16         applicationContext = SpringUtil.getApplicationContext();
17     }
18 
19 //    @Test
20 //    public void Test01() {
21 //
22 //        UserBean userBean = applicationContext.getBean(UserBean.class);
23 //        userBean.setAddress("sca");
24 //        System.out.println(userBean);
25 //        System.out.println(userBean.hashCode());
26 //        UserBean userBean2 = applicationContext.getBean(UserBean.class);
27 //        userBean2.setAddress("cds");
28 //        System.out.println(userBean2.hashCode());
29 //        System.out.println(userBean2);
30 //    }
31     @Test
32     public void controller(){
33         UserController controller = applicationContext.getBean(UserController.class);
34         controller.save();
35     }
36 }
View Code
相關文章
相關標籤/搜索