@Component(“”)和@resource(name=””)的使用:
@Component(“”)和@resource(name=””)的使用:
spring的配置文件配置:
<?xml version="1.0" encoding="UTF-8"?>
<beansxmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-3.0.xsd">
<!-- 扫描com.test 包,主要获取@Resource/@Component等-->
<context:component-scanbase-package="com.test"/>
<beans>
配置<context:component-scan base-package="com.test" />解析:
使用ClassPathXmlApplicationContext("bean.xml")初始化bean.xml的时候,或者说初始化spring配置文件的时候,会自动扫描com.test下的所有包,若发现有@component,则将该类初始化为一个对象,对象的key为@component("name")中指明的name,若不指明,则默认为类的名字首字母小写;当调用ctx.getBean("userService"),时,则查看容器是否有一个名字为userService;如有则在初始化这个类得过程中,如果发现@Resource(name=”u”);则查看容器是否有名字叫u的bean,若有则将u注入到方法参数中,而后参数就会传人方法内,当然也就注入了成员变量里:
UserService.java文件中使用:
@Component("userService")
publicclassUserService{
privateUserDAO userDAO =newUserDAOImpl();
privateUserLogDAO userLogDAO;
publicUserDAO getUserDAO(){
return userDAO;
}
publicUserLogDAO getUserLogDAO(){
return userLogDAO;
}
@Resource(name="ulog")
publicvoid setUserLogDAO(UserLogDAO userLogDAO){
this.userLogDAO = userLogDAO;
}
@Resource(name="u")
publicvoid setUserDAO(UserDAO userDAO){
this.userDAO = userDAO;
}
UserDAOImpl.java中使用:
@Component("u")
publicclassUserDAOImplimplementsUserDAO{
privateSessionFactory sessionFactory;
publicSessionFactory getSessionFactory(){
return sessionFactory;
}
@Resource
publicvoid setSessionFactory(SessionFactory sessionFactory){
this.sessionFactory = sessionFactory;
}
@Override
publicvoid save(User u){
Session s=sessionFactory.openSession();//.getCurrentSession();
//s.beginTransaction();
s.save(u);
System.out.println("a user save,XXXX!");
}
}
使用上述的@Component和@resource注解,相当于spring使用了如下的配置:
这样就可以省去之前在bean中所写的:
<!--
<bean id="u"class="com.test.dao.impl.UserDAOImpl">
</bean>
<bean id="UserService" class="com.test.service.UserService">
<property name="UserDAO" ref="u" />
</bean>
相关知识
The resource cannot be found.
Component
成功解决报错Cannot find class [com.alibaba.druid.pool.DruidDataSource] for bean with name ‘dataSource‘
管理后台项目的路由鉴权后台管理系统,项目前端使用的是@花裤衩 大佬的vue
kylinH5框架之项目组件理解
vue3 + vite4.0 开发项目(PC端和移动端共用一套代码)
Stripe & JS: 支付集成教程在这个Stripe & JS教程中,我将展示如何使用Stripe支付集成、
vue开发后台管理系统有感
cannot open resource self.font = core.getfont(font, size, index, encoding, layout
meta name=“viewport” content='width=device
网址: @Component(“”)和@resource(name=””)的使用: https://www.huajiangbk.com/newsview1178989.html
上一篇: 某温度时,在容积为2L的密闭容器 |
下一篇: 在温度、容积相同的3个密闭容器中 |
推荐分享

- 1君子兰什么品种最名贵 十大名 4012
- 2世界上最名贵的10种兰花图片 3364
- 3花圈挽联怎么写? 3286
- 4迷信说家里不能放假花 家里摆 1878
- 5香山红叶什么时候红 1493
- 6花的意思,花的解释,花的拼音 1210
- 7教师节送什么花最合适 1167
- 8勿忘我花图片 1103
- 9橄榄枝的象征意义 1093
- 10洛阳的市花 1039