spring in action解读一

来源:互联网 发布:新歌声网络战队都有谁 编辑:程序博客网 时间:2024/06/05 13:49

一. spring两大核心特性依赖注入(dependency injection, DI)和面向切面编程(aspect-oriented programming, AOP)
1. 依赖注入:我的理解就是面向接口编程,无须关注本身的实现。
2. 面向切面:就是对一些公共逻辑统一处理,业务逻辑无须关注与其业务无关的逻辑。交给切面去统一处理。
这里写图片描述
二. spring容器
按着类型大致分为2种:
1. bean工厂(BeanFactory)
2. 应用上下文(ApplicationContext)想比之下,应用上下文建立在BeanFactory之上,提供应用框架级别的服务。
下面我着重讨论下应用上下文:
AnnotationConfigApplicationContext:从java配置类加载spring上下文配置
AnnotationConfigWebApplicationContext:从java配置类中加载springweb上下文配置
ClassPathXmlApplicationContext:从类路径下加载xml配置文件
FileSystemXmlapplicationcontext:从文件系统下的xml配置文件加载上下文配置
XmlWebApplicationContext:从web应用下的xml配置文件加载上下文配置
三. bean的生命周期

这里写图片描述
⚠️:这完全取决你自己的业务场景,需要就实现,并不是串行都要实现的过程
四. bean的装配
1. 在xml中进行显式配置
2. 在java中进行显示配置
3. 隐式的bean发现机制和自动装配

创建可被发现的bean
@Component 表明该类作为组件类
@ComponentScan 默认会扫描与配置类相同的包(xml:)
basePackages= {“system”,”file”} 这是string类型,重构代码会错还不容易发现
basePackageClasses={“a.class”,”b.class”} 针对多个配置类,最好使用该方式
@Configuration 标明该类为配置类

为组件扫描的bean命名
@Component给定的ID默认是该类类名的第一个字母变成小写。当然可以显示的指定value,但是得保证唯一
@Named 大致和@Component用法相同

自动装配
@Autowired 可以用在构造器、set方法、申明对象上、还有其他方法。因为@Autowired是spring特有的注解,也可以使用@Inject

原创粉丝点击