Spring注解@Component、@Repository、@Service、@Controller区别
来源:互联网 发布:淘宝网购物怎么付款 编辑:程序博客网 时间:2024/06/05 00:19
spring 2.5 中除了提供 @Component 注释外,还定义了几个拥有特殊语义的注释,它们分别是:@Repository、@Service 和 @Controller。在目前的 Spring 版本中,这 3 个注释和 @Component 是等效的,但是从注释类的命名上,很容易看出这 3 个注释分别和持久层、业务层和控制层(Web 层)相对应。虽然目前这 3 个注释和 @Component 相比没有什么新意,但 Spring 将在以后的版本中为它们添加特殊的功能。所以,如果Web 应用程序采用了经典的三层分层结构的话,最好在持久层、业务层和控制层分别采用 @Repository、@Service 和 @Controller 对分层中的类进行注释,而用 @Component 对那些比较中立的类进行注释。
在一个稍大的项目中,通常会有上百个组件,如果这些组件采用xml的bean定义来配置,显然会增加配置文件的体积,查找以及维护起来也不太方便。 Spring2.5为我们引入了组件自动扫描机制,他可以在类路径底下寻找标注了@Component,@Service,@Controller,@Repository注解的类,并把这些类纳入进spring容器中管理。它的作用和在xml文件中使用bean节点配置组件时一样的。
@Controller@Scope("prototype") 采用多例模式public class UserAction extends ActionSupport implements ModelDriven<User> { @Resourceprivate UserService userService; ...}@Service@Transactional 事务注解public class UserService { @Resourceprivate UserDao userDao; ...}@Repositorypublic class UserDao extends HibernateDaoSupport { @Resourceprivate SessionFactory sessionFactory; ...}
就相当于
<!-- Action的配置 --> <bean id="userAction" class="com.itcast.shop.user.action.UserAction" scope="prototype"> <property name="userService" ref="userService"/> </bean> <!-- Service的配置 ===========================--> <bean id="userService" class="com.itcast.shop.user.service.UserService"> <property name="userDao" ref="userDao"/> </bean> <!-- Dao的配置 ===========================--> <bean id="userDao" class="com.itcast.shop.user.dao.UserDao"> <property name="sessionFactory" ref="sessionFactory"/> </bean>
0 0
- Spring注解@Component、@Repository、@Service、@Controller区别
- Spring注解@Component、@Repository、@Service、@Controller区别
- Spring注解@Component、@Repository、@Service、@Controller区别
- Spring注解@Component、@Repository、@Service、@Controller区别
- Spring注解@Component、@Repository、@Service、@Controller区别
- Spring注解@Component、@Repository、@Service、@Controller区别
- Spring注解@Component、@Repository、@Service、@Controller区别
- Spring注解@Component、@Repository、@Service、@Controller区别
- Spring注解@Component、@Repository、@Service、@Controller区别
- Spring注解@Component、@Repository、@Service、@Controller区别
- Spring注解@Component、@Repository、@Service、@Controller区别
- Spring注解@Component、@Repository、@Service、@Controller区别
- Spring注解@Component、@Repository、@Service、@Controller区别
- Spring注解@Component、@Repository、@Service、@Controller区别
- Spring注解@Component、@Repository、@Service、@Controller区别
- Spring注解@Component、@Repository、@Service、@Controller区别
- Spring注解@Component、@Repository、@Service、@Controller区别
- Spring注解@Component、@Repository、@Service、@Controller区别
- Oracle for .net & ServiceStack.OrmLite
- Android调用系统自带的文件管理器进行文件选择
- 精通 CSS+DIV 网页样式与布局 91
- 微信小程序与vue的区别,知乎回答!!!
- HTML5系列文章【2】 CSS3概述、语法、各种选择器
- Spring注解@Component、@Repository、@Service、@Controller区别
- 精通 CSS+DIV 网页样式与布局 92
- SQL Server T-SQL高级查询
- [NodeJS] Mongoose Populate 基本使用
- 个人建站中服务器的选择购买及对应系统的选择
- 冒泡及改进(java实现)
- 检测Android应用的启动与关闭
- 精通 CSS+DIV 网页样式与布局 93
- webservice调用方式