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

    SpringMVC中四个基本注解:


    @Component、@Repository   @Service、@Controller

    看字面含义,很容易却别出其中三个:

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

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

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

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

    其实,这四个注解的效果都是一样的,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);  
        }

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

    }

  • 相关阅读:
    Ubuntu 14.04 配置FTP
    python 命名规范
    Windows 多用户远程访问 Ubuntu 14.04桌面
    ubuntu 安装Matlab 解决显示中文乱码
    形式参数、实际参数和值传递、引用传递
    关于Hibernate中的临时态, 持久态, 游离态
    HTTP错误
    SpringMVC注解
    java变量的命名使用规则
    字节流与字符流的区别详解
  • 原文地址:https://www.cnblogs.com/owenma/p/7221563.html
Copyright © 2011-2022 走看看