解释一下Spring IOC、AOP
Spring IOC、AOP
借助Spring实现具有依赖关系的对象之间的解耦。
对象A运行需要对象B,由主动创建变为IOC容器注入,这便是控制反转。
获得依赖对象的过程被反转了,获取依赖对象的过程由自身创建变为由IOC容器注入,这便是依赖注入。
BeanFactory 和 ApplicationContext 有什么区别?
BeanFactory是Spring的最底层接口,包含bean的定义,管理bean的加载,实例化,控制bean的生命周期,特点是每次获取对象时才会创建对象。
ApplicationContext是BeanFactory的子接口,拥有BeanFactory的全部功能,并且扩展了很多高级特性,每次容器启动时就会创建所有的对象。ApplicationContext的额外功能:
继承MessageSource,支持国际化;
统一的资源文件访问方式;
提供在监听器中注册bean;
同时加载过个配置文件;
载入多个(有继承关系)上下文,使得每个上下文都专注于一个特定的层次,比如应用的web层。
BeanFactory通常以编程的方式被创建,ApplicationContext可以以声明的方式创建,如使用ContextLoader。
BeanFactory 和 ApplicationContext都支持BeanPostProcessor,BeanFactoryPostProcessor,但BeanFactory需要手动注册,ApplicationContext则是自动注册。
什么是 JavaConfig?
JavaConfig是Spring3.0新增的概念,就是以注解的形式取代Spring中繁琐的xml文件。 JavaConfig结合了xml的解耦和java编译时检查的优点。
@Configuration,表示这个类是配置类;
@ComponentScan,相当于xml的;
@Bean,相当于xml的;
@EnableWebMvc,相当于xml的;
@ImportResource,相当于xml的;
@PropertySource,用于读取properties配置文件;
@Profile,一般用于多环境配置,激活时可用@ActiveProfile("dev")注解;
Spring 有几种配置方式?
1. xml配置文件方式
2. 基于注解的方式
项目越来越大,基于xml配置太麻烦,Spring 2.x时代提供了声明bean的注解。
2.1 Bean的定义相关注解
@Component
@Controller
@Service
@Repository
2.2 Bean的注入相关注解
@Autowire
@Resource
3. 基于Java的方式
Spring 3.x以后,可以通过Java代码装配Bean。
原来就是配置类啊,通过@Bean、@Component、getBean方式进行Bean的注册和发现。
更多关于“java培训”的问题,欢迎咨询千锋教育在线名师。千锋教育多年办学,课程大纲紧跟企业需求,更科学更严谨,每年培养泛IT人才近2万人。不论你是零基础还是想提升,都可以找到适合的班型,千锋教育随时欢迎你来试听。