11220171023
11220171023
注意要点:配置Bean时刻注意IoC容器中Bean的数量以及类型,做到心中有底。[是自动装配还是主动配置要明确,不要重复注入]
1、注解定义Bean
1)、@Component:基本注解,标识了一个受Spring管理的Bean组件,以下三种的父注解]
2)、@Controller:标识表现层Bean组件]
3)、@Service:标识服务层(业务层)Bean组件]
4)、@Repository:标识持久层Bean组件(Dao bean)]
2、如何通过注解配置Bean?
1)、通过上述注解对此类进行标注
2)、扫描:配置文件引入context命名空间
3)、导入相应的库 [aspectjweaver.jar、spring-aop-4.3.6.RELEASE.jar、spring-aspects-4.3.6.RELEASE.jar]
4)、扫描类过滤条件 :减少粒度
(1)、use-default-filter=false[指定扫描] 时候与
配合使用
(2)、use-default-filter=true[系统默认扫描所有] 时候与
配合使用
3、type属性[过滤规则]
1)、annotation:只要类的注解与表达式的注解匹配,自动将此类配置成bean
2)、assignable:按继承某类的接口过滤
3)、aspectj:按包名的通配符来过滤[最为灵活],例如 com.tiger.service..*Service 表示此包以及子包下的所有以Service结尾的类
4)、......
4、自动装配(注意使用此方法时需要进行扫描)[@Autowired]:通过byType(类型)注入,扫描IOC容器中的bean,符合类型要求的会自动注入,当有多个符合要求的,可以加@Qualifier指明注入哪个bean,此时转变为byName
5、@Resource[直接将集合bean注入,jdk自带的注解,默认byType,只有当找不到与名称匹配的bean才会按照类型来装配注入]
6、如何通过JavaConfig配置
1)、创建一个人APPConfig.java文件
2)、@Configuration 标识的类可以使用 Spring IoC 容器作为 bean 定义的来源。
3)、@Bean 标识的方法可以作为Spring 应用程序上下文中的 bean
4)、@ComponentScan( basePackages={"com.tiger"})[注:如果加上此注解,则类添加@Component、...、属性添加@Autowired]
(1)、例如:
@Configuration
@ComponentScan(
basePackages={"com.tiger"},
useDefaultFilters=false,
[email protected](
type=FilterType.ASPECTJ,
pattern={"com.tiger.controller.*Controller+"}))
public class AppConf {
}
5)、ApplicationContext ctx=new AnnotationConfigApplicationContext(AppConf.class);[获得上下文对象]