zoukankan      html  css  js  c++  java
  • Spring中的注解@Service @Component @Controller @Repository区别

    @Service用于标注业务层组件,

    @Controller用于标注控制层组件(如struts中的action),

    @Repository用于标注数据访问组件,即DAO组件,

    @Component泛指组件,当组件不好归类的时候,我们可以使用这个注解进行标注。

    这四个注解其实都是和Component差不多只是在语义上有些不一样,修饰的方法

    请看下面的一个例子

    dao层

     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层实现类

     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层

     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
  • 相关阅读:
    Activiti服务类-4 HistoryService服务类
    Activiti服务类-3 FormService服务类
    知识碎片
    web 框架
    pymysql 模块
    Bootstrap-按钮
    Bootstrap-下拉菜单
    前端之jQuery03 插件
    Python打印进度条
    JavaScript碎片
  • 原文地址:https://www.cnblogs.com/lonecloud/p/5745885.html
Copyright © 2011-2022 走看看