1.Spring框架概念
Spring 框架是 Java 应用最广的框架,它的成功来源于理念,而不是技术本身,它的理念包括 IoC (Inversion of Control,控制反转) 和 AOP(Aspect Oriented Programming,面向切面编程)。
理念:每个bean与bean之间的关系统一交给SpringIOC容器管理
2.Spring体系结构
1、Spring Core:主要组件是BeanFactory,创建JavaBean的工厂,使用控制反转(IOC) 模式 将应用程序的配置和依赖性规范与实际的应用程序代码分开。
2、Spring AOP:集成了面向切面的编程功能(AOP把一个业务流程分成几部分,例如权限检查、业务处理、日志记录,
每个部分单独处理,然后把它们组装成完整的业务流程。每个部分被称为切面),可以将声明性事物管理集成到应用程序中。
3、Spring Cntext:一个核心配置文件,为Spring框架提供上下文信息。
4、Spring Do:Spring操作数据库的模块。
5、Spring ORM:Spring集成了各种orm(object relationship mapping 对象关系映射)框架的模块,集成mybatis
6、Spring Web集成各种优秀的web层框架的模块(Struts、Springmvc)
7、Spring web MVC:Spring web层框架
3.Spring框架注解解析
3.1@Configuration
注解表明此类为配置类,包含了Spring应用上下文中如何创建bean的细节;
3.2@ComponentScan
@ComponentScan主要就是定义扫描的路径从中找出标识了需要装配的类自动装配到spring的bean容器中
3.2.1 includeFilters
包含扫包范围FilterType 有四种类型:
ANNOTATION:注解类型
ASSIGNABLE_TYPE:ANNOTATION:指定的类型
ASPECTJ:按照Aspectj的表达式,基本上不会用到
REGEX:按照正则表达式
CUSTOM:自定义规则
包含扫包范围:
@Configuration
@ComponentScan(value = "com.dylan.user", includeFilters = {@ComponentScan.Filter(type = FilterType.ANNOTATION, classes = Controller.class)}, useDefaultFilters = false)
public class MySpringConfig {
//@Configuration 等同于配置的spring配置文件
@Bean
public UserEntity userEntity() {
return new UserEntity();
}
}
3.2.2 excludeFilters
排除扫包范围:
@Configuration
@ComponentScan(value = "com.dylan.user", excludeFilters = {@ComponentScan.Filter(type = FilterType.ANNOTATION, classes = Controller.class)}, useDefaultFilters = true)
public class MySpringConfig {
//@Configuration 等同于配置的spring配置文件
@Bean
public UserEntity userEntity() {