zoukankan      html  css  js  c++  java
  • SpringMVC注解@Component、@Repository、@Service、@Controller区别

    下面写这个是引入component的扫描组件 

    1
    <context:component-scan base-package=”com.mmnc”>

    @Controller   控制层,就是我们的action层

    @Service        业务逻辑层,就是我们的service或者manager层

    @Repository  持久层,就是我们常说的DAO层

     

    而@Component  (字面意思就是组件),它在你确定不了事哪一个层的时候使用。

    (把普通pojo实例化到spring容器中,相当于配置文件中的<bean id="" class=""/>)

     

    其实,这四个注解的效果都是一样的,spring都会把它们当做需要注入的Bean加载在上下文中;

    但是在项目中,却建议你严格按照除Componen的其余三个注解的含义使用在项目中。这对分层结构的web架构很有好处!!

     

    示例:

    1.  控制层

    @Controller // 注释为controller
    @RequestMapping("/login")
    public class LoginAction {
     
     @Autowired  
     @Qualifier("userService") //注释指定注入 Bean 
     private IUserService userService;

     

     。。。。。。 其他略 。。。。。。

    }

     

    2.  业务逻辑层

    @Service("userService")
    public class UserServiceImpl implements IUserService {

        @Autowired
        @Qualifier("userDao")
        private IUserDao userDao;  

     

     

     。。。。。。 其他略 。。。。。。

    }

     

    3.  持久层

    @Repository("userDao")
    public class UserDaoImpl implements IUserDao {
     private static Logger logger = LoggerFactory.getLogger(UserDaoImpl.class);
     private DataSource dataSource;  
        private JdbcTemplate template;  
          
        @Autowired  
        public UserDaoImpl(DataSource dataSource){  
            this.dataSource= dataSource;  
            template = new JdbcTemplate(this.dataSource);  
        }

     

     。。。。。。 其他略 。。。。。。

    }


    参考博客:

    [1] Hello.NET, SpringMVC注解@Component、@Repository、@Service、@Controller区别, https://www.cnblogs.com/mfc-itblog/p/6854504.html
    [2] lqh, spring @component的作用详细介绍, http://www.jb51.net/article/112017.htm


  • 相关阅读:
    从gettext来看linux下程序的internationalization
    C++ Convert Operator和其他Operator的应用场景比较
    申明一个函数指针,并且该函数的返回值也是一个函数指针 示例代码
    XML操作大全
    如何让页面延迟显示?
    Ajax实现不刷屏的前提下实现页面定时刷新
    我喜欢的笑话 呵呵
    Atlas UpdatePanel使用技巧以及常见问题
    asp.net 弹出窗体
    C# asp.net操作文件
  • 原文地址:https://www.cnblogs.com/ryelqy/p/10104086.html
Copyright © 2011-2022 走看看