〇、Maven 0.1 什麼是Maven? Apache Maven is a software project management and comprehension tool. Based on the concept of a project object model (POM), Mave ...
〇、Maven
0.1 什麼是Maven?
Apache Maven is a software project management and comprehension tool. Based on the concept of a project object model (POM), Maven can manage a project's build, reporting and documentation from a central piece of information.
一、Spring
1.1什麼是Spring?
The Spring Framework provides a comprehensive programming and configuration model for modern Java-based enterprise applications - on any kind of deployment platform.
Spring是分層的JavaSE/EEfull-stack 輕量級開源框架,Spring的兩大特點是:IoC(Inverse of Control 控制反轉),AOP(Aspect Oriented Programming 面向切麵編程)。
1.2 如何使用Maven載入Spring框架?
在pom.xml(maven的配置文件)中添加Maven所依賴的Jar的名稱,也就是添加
<!-- https://mvnrepository.com/artifact/org.springframework/spring-context -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.3.16</version>
</dependency>
1.3 Spring 的核心容器
Spring容器會負責控製程序之間的關係,而不是由程式代碼直接控制。Spring為我們提供了兩種核心容器,分別為BeanFactory和ApplicationContext。
1.3.1 BeanFactory
創建BeanFactory實例時,需要提供Spring所管理容器的詳細配置信息,這些信息通常採用XML文件形式來管理,其載入配置信息的語法如下:
BeanFactory beanFactory =
new XmlBeanFactory(new FileSystemResource("F: /applicationContext.xml"));
//F: /applicationContext.xml是XML配置文件的位置
這種載入方式在實際開發中並不多用,瞭解即可。
1.3.2 ApplicationContext
ApplicationContext是BeanFactory的子介面,是另一種常用的Spring核心容器。它由org.springframework.context.ApplicationContext介面定義,不僅包含了BeanFactory的所有功能,還添加了對國際化、資源訪問、事件傳播等方面的支持。創建ApplicationContext介面實例,通常採用兩種方法,具體如下:
1、通過ClassPathXmlApplicationContext創建
ApplicationContext applicationContext =
new ClassPathXmlApplicationContext(String configLocation);
ClassPathXmlApplicationContext會從類路徑classPath中尋找指定的XML配置文件,找到並裝載完成ApplicationContext的實例化工作。
2、通過FileSystemXmlApplicationContext創建
ApplicationContext applicationContext =
new FileSystemXmlApplicationContext(String configLocation);
FileSystemXmlApplicationContext會從指定的文件系統路徑(絕對路徑)中尋找指定的XML配置文件,找到並裝載完成ApplicationContext的實例化工作。
1.3.3 ContextLoaderListener
Java項目中,會通過ClassPathXmlApplicationContext類來實例化ApplicationContext容器。而在Web項目中,ApplicationContext容器的實例化工作會交由Web伺服器來完成。
Web伺服器實例化ApplicationContext容器時,通常會使用ContextLoaderListener來實現,此種方式只需要在web.xml中添加如下代碼:
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
classpath:spring/applicationContext.xml
</param-value>
</context-param>
<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
1.4 什麼是IoC(控制反轉)?
1.4.1 依賴註入
DI的全稱是Dependency Injection,中文稱之為依賴註入。它與控制反轉(IoC)的含義相同,只不過這兩個稱呼是從兩個角度描述的同一個概念。
IoC:在使用Spring框架之後,對象的實例不再由調用者來創建(就是不需要像以前一樣new一個對象了),而是由Spring容器來創建,Spring容器會負責控製程序之間的關係,而不是由調用者的程式代碼直接控制。這樣,控制權由應用代碼轉移到了Spring容器,控制權發生了反轉,這就是控制反轉。
DI:從Spring容器的角度來看,Spring容器負責將被依賴對象賦值給調用者的成員變數,這相當於為調用者註入了它依賴的實例(就是相當於為調用者無形中new好了這個對象),這就是Spring的依賴註入。