Spring
默认把类名第一个字母小写定义为id
l
Bean 管理的注解实现及例子
@Component:通用注解,用于任何Bean(下面为子注解)
@Repository 通常用于注解DAO类,急持久层
@Service通常用于注解Service,服务层
@Controller用于Controller,控制层(mvc)
Bean管理的注解实现及例子
1、Classpath扫描与组件管理
定义:从Spring3.0开始,Spring JavaConfig项目提供很多特性,包括通过注解定义Bean,而不是使用XML。
@Component:通用型注解,可用于任何Bean。
@Repository:通常用于注解DAO类,即持久类。
@Service:通常用于注解Service类,即服务层。
@Controller:通常用于注解Controller,即控制层。
2、类的自动检测与注册Bean
定义:Spring可以检测到类上和属性上以及方法上的注解,可以通过注解进行实例化或注入。
3、<context:annotation-config/>
定义:基于XML配置,如果使用该标签,则在描述中添加约束。
<context:component-scan>:一般处理类上的注解,它的功能包含<context:annotation-config>的功能,比较常用。
<context:annotation-config>:一般处理实例化Bean的属性和方法的注解。
SpringXML配置过滤器作用:扫描特定包下的特定注解。
4、@Component,@Repository,@Service,@Controller
5、@Required
6、@Autowired
7、@Qualifier
8、@Resource
这里入如果是非无参状态会如何?
如果写了有参数的构造函数并且继承的父类中没有无参的构造函数会报错。
难道说类实例需要小写的规范和这个有关2333
这一块的限定扫描目前能想到的使用场景主要是:未完成的功能模块,未测试的新部分,需要后续开发的预留类……
之前用是用,大多数照猫画虎
ioc容器=applicatiocContext
ioc容器就相当于应用上下文
代理方式scoped=proxy
作用域(Scope)
定义Bean
使用过滤器自定义扫描-API
使用过滤器进行自定义扫描
类的自动检测及Bean的注册
<context:annotation-config/>仅会查找在同一个applicationContext中的bean注解
类的自动检测及Bean的注册
元注解(Meta-annotations)
Classpath扫描与组件管理
Bean管理的注解实现及例子
component-scan:component 自定义注解,repository service controller
通过在配置Sppring的xml配置文件的时候通过配置
<conntext:component-scan base-package="com.demo" />
来让Spring自动扫描标注了@Component、@Service、@Controller、@Repository这些注解的类,并把这些类自动装配到Spring容器中去(ApplicationContent)。
Spring在扫苗Bean的时候Bean的名称是有BeanNameGenerator生成的,你也可以通过实现BeanNameGenerator这个接口并包含一个无参的构造器自定义Bean命名策略,还有一种方式就是在@Component、@Service、@Controller、@Repository这些注解标注的Bean的时候显显式设值这些注解的name属性。
代理方式xxx
使用过滤器进行自定义扫描
类的自动检测及Bean的注册
类的自动检测及Bean的注册
Bean管理注解2
Bean管理注解1
bean自动检测注册过滤器