一篇文章帶你Java Spring開發(fā)入門
Spring概述
Spring就是為解決企業(yè)應(yīng)用開發(fā)的復(fù)雜性而創(chuàng)建的,做為開源中間件,它使用基本的JavaBean來完成以前只可能有EJB(Java企業(yè)bean)完成的事情。Spring獨立于各種應(yīng)用服務(wù)器,甚至無須應(yīng)用服務(wù)器的支持也能提供應(yīng)用服務(wù)器的功能,同時為JavaEE應(yīng)用程序開發(fā)提供繼承的框架,是企業(yè)應(yīng)用開發(fā)的“一站式”選擇。Spring的用途不僅限于服務(wù)器的開發(fā),任何Java應(yīng)用都可以從Spring中受益。
Spring是一個開源框架,它的功能都是從實際開發(fā)中抽取出來的。其主要優(yōu)勢之一是采用分層架構(gòu),整個框架由7個定義良好的模塊(組件)構(gòu)成,它們都統(tǒng)一構(gòu)建于核心容器之上。
Spring Core:核心容器提供Spring框架的基本功能,其主要組件BeanFactory是工廠模式的實現(xiàn)。它通過控制反轉(zhuǎn)(IOC)機制,將應(yīng)用程序配置和依賴性規(guī)范與實際的程序代碼分離開。
Spring Context:想Spring框架提供上下文信息,包括企業(yè)服務(wù)。
Spring DAO:JDBC DAO抽象層提供了有用的一場層次結(jié)構(gòu),用來管理異常處理和不同數(shù)據(jù)庫供應(yīng)商拋出的錯誤信息。
Spring簡單應(yīng)用
當創(chuàng)建一個簡單的Java項目的時候,在控制臺要求輸出“Hello world!”,如果要求輸出“Hello Beer!”等等,那么就要不斷地去修改程序源代碼。如果項目龐大,程序中涉及這一輸出地語句不止一處,有很多處,且分散在整個項目地源碼(往往有成千上萬)中,如此大動干戈地改動程序,對于一個軟件系統(tǒng)地維護來說將是災(zāi)難性地。
package org.example; public class TestHello { private String message; public String getMessage() { return message; } public void setMessage(String message) { this.message = message; } }
package org.example; public class Test { public static void main( String[] args ) { TestHello testHello=new TestHello(); testHello.setMessage("Hello world!……"); System.out.println(testHello.getMessage()); } }
下面使用Spring解決這一問題。使用Spring實現(xiàn)程序輸出內(nèi)容地靈活改變。
Spring框架地基本使用
項目創(chuàng)建
添加依賴包
將下面這段依賴加入到紅色方框里面<dependencies> </dependencies>之間。
<dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> <version>5.3.8</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-beans</artifactId> <version>5.3.8</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>5.3.8</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context-support</artifactId> <version>5.2.12.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-expression</artifactId> <version>5.3.8</version> </dependency> <dependency> <groupId>commons-logging</groupId> <artifactId>commons-logging</artifactId> <version>1.2</version> </dependency>
加入完成之后,點擊該按鈕,稍等一會ideal自動幫我們下載依賴包。
創(chuàng)建Spring配置文件
修改配置文件
打開ApplicationContest.xml,對其進行修改:
id:bean的唯一標識符,也就是相當于我們學(xué)的對象名。
class:bean對象所對應(yīng)的全限定名:包名+類型。
property:相當于給對象中的屬性設(shè)置一個值。
value:具體的值,基本數(shù)據(jù)類型。
<?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"> <bean id="TestHello" class="org.example.TestHello"> <property name="message"> <value>Hello World!</value> </property> </bean> </beans>
修改測試類
package org.example; import javafx.application.Application; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; public class App { public static void main( String[] args ) { //獲取ApplicationContext對象 ApplicationContext application=new ClassPathXmlApplicationContext("ApplicationContext.xml"); //通過ApplicationContext獲得TestHello對象 //getBean()方法中的參數(shù)即為配置文件中Bean的id的值 TestHello testHello=(TestHello) application.getBean("TestHello"); System.out.println(testHello.getMessage()); } }
運行結(jié)果
若要程序輸出“hello Beer!”,則只需要修改配置文件中的value值即可
<value>Hello Beer!</value>
這個例子看不出來Spring的優(yōu)勢,擔當項目規(guī)模很大,且源代碼中有很多處這樣的輸出語句時,Spring的有事就充分體現(xiàn)出來了。因為用了Spring只需修改配置文件一個地方的value值即可讓所有的輸出都跟著一致變化,而不用逐條煩瑣地修改程序代碼啦!
總結(jié)
本篇文章就到這里了,希望能夠給你帶來幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!
相關(guān)文章
Spring?Boot?+?EasyExcel?+?SqlServer?進行批量處理數(shù)據(jù)的高效方法
在日常開發(fā)和工作中,我們可能要根據(jù)用戶上傳的文件做一系列的處理,本篇文章就以Excel表格文件為例,主要介紹了Spring?Boot?+?EasyExcel?+?SqlServer?進行批量處理數(shù)據(jù)的高效方法,需要的朋友可以參考下2024-06-06SpringBoot項目中建議關(guān)閉Open-EntityManager-in-view原因
這篇文章主要為大家解析了在Spring Boot項目中建議關(guān)閉Open-EntityManager-in-view的原因示例分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助2022-02-02Java字節(jié)流與基本數(shù)據(jù)類型的轉(zhuǎn)換實例
本篇文章主要介紹了Java字節(jié)流與基本數(shù)據(jù)類型的轉(zhuǎn)換實例,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-06-06Java 基礎(chǔ)全面講解StringBuffer類的使用
當對字符串進行修改的時候,需要使用 StringBuffer 和 StringBuilder類,和String類不同的是,StringBuffer和 StringBuilder類的對象能夠被多次的修改,并且不產(chǎn)生新的未使用對象2022-01-01SpringBoot整合Redis實現(xiàn)訪問量統(tǒng)計的示例代碼
本文主要介紹了SpringBoot整合Redis實現(xiàn)訪問量統(tǒng)計的示例代碼,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-02-02學(xué)會CompletableFuture輕松駕馭異步編程
這篇文章主要為大家介紹了CompletableFuture輕松駕馭異步編程教程詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-04-04基于springboot實現(xiàn)整合shiro實現(xiàn)登錄認證以及授權(quán)過程解析
這篇文章主要介紹了基于springboot實現(xiàn)整合shiro實現(xiàn)登錄認證以及授權(quán)過程解析,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習或者工作具有一定的參考學(xué)習價值,需要的朋友可以參考下2019-12-12