1.版本說明
IDE:Idea 2017
Spring:5.0.1 (如果你使用了Spring4.0以上版本,則需要保證JDK版本在1.8及以上!)
JDK:1.8
2.配置Spring環境
(1)配置前准備:
Spring的jar包,以及Spring的依賴包common-logging。你可以前往官方網站下載zip壓縮包:
commonlogging下載:
http://commons.apache.org/proper/commons-logging/download_logging.cgi
Spring 下載:進入該站后點擊你需要的版本,下載其中的“spring-framework-(版本號).RELEASE-dist.zip”,里面包含了類文件和doc文檔
http://repo.spring.io/release/org/springframework/spring/
(2)創建Spring Hello World
①創建JavaWeb項目
file --->new project --->選擇java ee下的Web Application
②next--->編輯你的項目名稱---->finish
③創建完成后,在項目的的web目錄下的WEB-INF下創建lib、classes文件夾,
用於存放下載的Spring和common-logging。
④Project Structure配置
file ----> Project Structure 進入Modules
1)選擇Path,將路徑指向剛剛建立的classes的路徑(該步驟是設置class文件的輸出路徑)
2)選擇dependcies,點擊右邊 “+” 號,選擇JAR or directories,路徑指向剛剛建立的lib文件夾(該步驟是設置Project的外部依賴包的路徑)
3)當然,作為Java Web項目,后續還有其他配置。但是,僅僅做demo,Project Structure到這里可以了。點擊apply。你會發現WEB-INF下多了classes文件夾
⑤將Spring jar包和common jar包copy到lib文件夾下
將下載的zip包解壓后,如下:其中libs目錄下是所有jar包,docs中有api文檔。
我們需要將libs目錄下所有以 ******.RELEASE.jar結尾的文件以及commons-logging-1.x.jar copy到Project中的lib目錄下
注意:在Idea中 ,所有外部依賴的jar包在加入到project中后 ,要選中該jar 右鍵點擊“add as library”,或者在加入全部的jar后,右鍵lib文件夾,“add as library”。
值得一說的是:docs ---> javadoc-api 下有index.html,打開它就可以在瀏覽器出查看Spring的API了
⑥編寫demo.java
我的項目結構如下,主要是為了接着往后面學習,所以創建了很多包
一共需要三個文件:User.java UserTest.java,以及Spring Bean的配置文件----UserBean.xml
User.java
package com.test.springtest.test; public class User { private String name; public String getName() { return name; } public void setName(String name) { this.name = name; } }
UserTest.java
package com.test.springtest.test; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; public class UserTest { public static void main(String[] arg){ //一般情況下的創建新對象方式 User user1 = new User(); user1.setName("張三"); System.out.println("----使用new的方式創建對象----"); System.out.println("user1's name is:" + user1.getName()); /*
*使用框架的API ClassPathXmlApplicationContext() 來創建應用程序的上下文。
*這個 API 加載 beans 的配置文件並最終基於所提供的 API,它處理創建並初始化所有的對象,即在配置文件中提到的 beans。
*/ ApplicationContext context = new ClassPathXmlApplicationContext("UserBean.xml");
/*
*使用已創建的上下文的 getBean() 方法來獲得所需的 bean。
*這個方法使用 bean 的 ID 返回一個最終可以轉換為實際對象的通用對象。
*一旦有了對象,你就可以使用這個對象調用任何類的方法。
*/ User user2 = (User) context.getBean("User"); System.out.println("----使用Spring Bean的方式創建對象----"); System.out.println("user2's name is:" + user2.getName()); } }
UserBean.xml
Beans.xml 用於給不同的 bean 分配唯一的 ID,並且控制不同值的對象的創建,而不會影響 Spring 的任何源文件。例如,使用下面的文件,你可以為 “name” 變量傳遞任何值,因此你就可以輸出信息的不同值,而不會影響的 User.java和UserTest.java 文件。
一個個的<bean></bean>就相當於要實例化的對象。在Spring中將對象的管理交給了Spring 容器。
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> <!--id指向User類--> <bean id="User" class="com.test.springtest.test.User"> <!--在實例化對象時為成員變量賦值--> <property name="name" value="李四"></property> </bean> </beans>
運行main:
----使用new的方式創建對象---- user1's name is:張三
八月 11, 2018 3:52:51 下午 org.springframework.context.support.ClassPathXmlApplicationContext prepareRefresh 信息: Refreshing org.springframework.context.support.ClassPathXmlApplicationContext@2530c12:
startup date [Sat Aug 11 15:52:51 CST 2018]; root of context hierarchy 八月 11, 2018 3:52:51 下午 org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions 信息: Loading XML bean definitions from class path resource [UserBean.xml]
----使用Spring Bean的方式創建對象---- user2's name is:李四
在輸出中可以發現:
使用Spring的方式需要加載上下文(context),Beans.xml文件