Spring核心三(基于注解的组件扫描)
来源:互联网 发布:淘宝限定皮肤cdk哪来的 编辑:程序博客网 时间:2024/05/29 11:33
1.组件扫描:指定一个包路劲,Spring会自动扫描该包及其子包所有组件类,当发现组件类定义前有特定的注解标记时,就将改组件纳入到Srping容器。等价于原有XML配置中的<bean>定义功能
2.指定扫描类路径<context:component-scanbase-package=”org.example”/>
ps:上面配置,容器实例化时会自动扫描org.example包及其子包下所有组件类
3.自动扫描的注解标记
@Component通用注解
@Name 通用注解
@Repository持久化层组件注解
@Service 业务层组件注解
@Contrller控制层组件注解
4.当一个组件在扫描过程中被检测到时,会生成一个默认id值,默认id为小写开头的类名,也可以在注解标记中自定义id @Service(“loginService”)
5.指定组件的作用域 @Scope(“prototype”)
6. @PostConstruct和 @PreDestroy注解标记分别用于指定初始化和销毁回调方法
publicclass ExampleBean{
@PostConstruct
publicvoid init(){
//初始化回调方法
}
@PreDestroy
public void destroy(){
//销毁回调方法
}
}
7.注入依赖关系
具有依赖关系的Bean对象,利用下面任意一种注解都可以实现关系注入
@ReSource
@Autowired/@Qualifier
@Inject/@Named
step1:@ReSource注解标记可以用在字段定义或setter方法定义前面,默认首先按名称匹配注入,然后类型匹配注入
publicclass UserService{
//@ReSource
private UserDao userDao;
@ReSource
public void setUserDao(UserDao dao){
this.userDao = dao;
}
}
当遇到多个匹配Bean时注入会发生错误,可以显示指定名称,例如@Resource(name=”empdao1”)
step2: @Autowired注解标记也可以用在字段定义或setter方法定义前面,默认按类型匹配注入
publicclass UserService{
//@Autowired
private UserDao userDao;
@Autowired
public void setUserDao(UserDao dao){
this.userDao = dao;
}
}
@Autowired当遇到多个匹配Bean时注入会发生错误,可以使用下面方法指定名称
publicclass UserService{
//@Autowired
//@Qualifier(“mysqlUserDao”)
private UserDao userDao;
@Autowired
public voidsetUserDao(@Qualifier(“mysqlUserDao”)UserDao dao){
this.userDao = dao;
}
}
step3:@Inject注解标记是Spring3.0开始增添的对JSR-330标准的支持,使用前需要添加JSR-330的jar包,使用方法与@Autowired相似
8.注入Spring表达式值
@value注解可以注入Spring表达式值
step1: 首先在XML配置中指定要注入的properties文件
<util:propertiesid=”jdbcProps” location=”classpath:db.properties” />
step2: 然后在setter方法前使用@Value注解
publicclass JDBCDataSource{
@Value(“#jdbcProps.url”)
privateString url;
@Value(“#{jdbcPros.driver}”)
publicvoid setUrl(String driver){
try{
Class.forName(driver)}
}catch(…)
}
}
- Spring核心三(基于注解的组件扫描)
- Spring框架-基于注解的组件扫描
- 基于注解的组件扫描
- 基于注解的组件扫描
- Spring学习3--基于注解的组件扫描
- 初学SpringMVC+Mybatis之Spring基于注解的组件扫描
- 四、初学SpringMVC+Mybatis之Spring基于注解的组件扫描
- Spring学习笔记(三)-类扫描的注解
- JAVA_OA管理系统(四):基于注解的组件扫描
- SPRINGMYBATIS01 Unit02: 参数值注入 、 基于注解的组件扫描
- 参数值注入 、基于注解的组件扫描
- Spring-基于注解的配置[01定义Bean+扫描Bean]
- spring(三)(基于注解的方式配置bean)
- 重学Spring(三)基于注解的配置
- Spring In Action(三):基于注解的AOP
- Spring 基于注解的配置(三)(@Resource,@PostConstruct ,@PreDestory)
- SpringMVC核心三(基于注解应用)
- 使用 Spring 2.5 基于注解驱动的 Spring MVC(三)
- API Demos(4) Preference,偏好设置
- 温度传感器的分类及比较
- 2018中国双态运维用户大会于1月13日在京举行
- Mybatis的几种模糊查询
- bzoj4200 [Noi2015]小园丁与老司机(dp+记录路径+有源汇有上下界最小流)
- Spring核心三(基于注解的组件扫描)
- Java方法的可变参数个数
- leetcode 650. 2 Keys Keyboard 最小复制粘贴次数 + 深度优先遍历DFS
- location配置介绍
- curl的简单使用
- 8皇后问题
- tkinter # If this fails your Python may not be configured for Tk解决方法
- Python 函数 类
- HTML页面布局