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萬人。不論你是零基礎還是想提升,都可以找到適合的班型,千鋒教育隨時歡迎你來試聽。