spring通過(guò)導(dǎo)入jar包和配置xml文件啟動(dòng)的步驟詳解
第一步,進(jìn)到 spring倉(cāng)庫(kù)下載一個(gè)spring包,大家前往官網(wǎng)下載的時(shí)候,記得下載dist.zip后綴的包,里面包括了jar包和對(duì)應(yīng)的英文文檔。
下面是自己已經(jīng)下載的一個(gè),提供百度云鏈接:
百度云,提取碼:hpst
第二步,打開(kāi)idea -> File -> Project Structrure -> Libraries,點(diǎn)擊上面的 "+"號(hào),找到存放spring源碼的目錄,進(jìn)入libs目錄,然后將 beans、context、core、expression、jcl這5個(gè)jar包導(dǎo)入,如下截圖:
導(dǎo)入 jcl 這個(gè)包是引入 org/apache/commons/logging,不然編譯的時(shí)候會(huì)出現(xiàn)如下報(bào)錯(cuò):
Exception in thread “main” java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory
第三步,導(dǎo)入成功之后,就可以開(kāi)始使用spring框架了。
下面做一個(gè)例子:
先給大家看一下目錄結(jié)構(gòu):
spring.xml這個(gè)文件是通過(guò) File -> New -> XML Configuration File -> Spring Config 創(chuàng)建出來(lái)的。
上面的代碼分別如下:
//這是目錄結(jié)構(gòu)中的IUserDao接口類(lèi) package dao; /** * @program: Spring_01 * @description * @author: * @create: 2020-08-05 16:16 **/ public interface IUserDao { void getUser(); }
//這是目錄結(jié)構(gòu)中的IUserDao接口類(lèi)的實(shí)現(xiàn) package dao.impl; import dao.IUserDao; /** * @program: Spring_01 * @description * @author: * @create: 2020-08-05 16:36 **/ public class UserDaoOracleImpl implements IUserDao { @Override public void getUser() { System.out.println("查詢的是Oracle數(shù)據(jù)庫(kù)"); } }
//這是目錄結(jié)構(gòu)中的IUserService接口類(lèi) package service; /** * @program: Spring_01 * @description * @author: * @create: 2020-08-05 08:51 **/ public interface IUserService { void getUser(); }
//這是目錄結(jié)構(gòu)中的IUserService接口類(lèi)的實(shí)現(xiàn) package service.impl; import dao.IUserDao; import service.IUserService; /** * @program: Spring_01 * @description * @author: * @create: 2020-08-05 08:52 **/ public class UserServiceImpl implements IUserService { IUserDao dao_oracle; public IUserDao getDao_oracle() { return dao_oracle; } public void setDao_oracle(IUserDao dao_oracle) { this.dao_oracle = dao_oracle; } @Override public void getUser() { getDao_oracle().getUser(); } }
//這是目錄結(jié)構(gòu)中的MyTest測(cè)試類(lèi)的實(shí)現(xiàn) package test; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; import service.IUserService; import service.impl.UserServiceImpl; /** * @program: Spring_01 * @description * @author: * @create: 2020-08-05 16:20 **/ public class MyTest { public static void main(String[] args) { ApplicationContext ioc = new ClassPathXmlApplicationContext("spring.xml"); IUserService service = ioc.getBean(IUserService.class); service.getUser(); } }
下面是spring.xml配置文件的內(nèi)容
<?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 class="dao.impl.UserDaoOracleImpl" id="userDaoOracle"/> <bean class="service.impl.UserServiceImpl" id="userService"> <property name="dao_oracle" ref="userDaoOracle"/> </bean> </beans>
這里我想提醒大家注意的是,service業(yè)務(wù)邏輯類(lèi)必須通過(guò)getter 和 setter方式獲取dao對(duì)象和設(shè)置dao對(duì)象,不然配置spring.xml的時(shí)候, name標(biāo)簽不能實(shí)現(xiàn)自動(dòng)提示,也就是說(shuō)不能編譯通過(guò)
。
編譯運(yùn)行之后會(huì)出現(xiàn)如下結(jié)果:
查詢的是Oracle數(shù)據(jù)庫(kù)
總結(jié)
到此這篇關(guān)于spring通過(guò)導(dǎo)入jar包和配置xml文件啟動(dòng)的文章就介紹到這了,更多相關(guān)spring通過(guò)導(dǎo)入jar包和配置xml文件啟動(dòng)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java工廠模式優(yōu)雅地創(chuàng)建對(duì)象以及提高代碼復(fù)用率和靈活性
Java工廠模式是一種創(chuàng)建型設(shè)計(jì)模式,通過(guò)定義一個(gè)工廠類(lèi)來(lái)封裝對(duì)象的創(chuàng)建過(guò)程,將對(duì)象的創(chuàng)建和使用分離,提高代碼的可維護(hù)性和可擴(kuò)展性,同時(shí)可以實(shí)現(xiàn)更好的代碼復(fù)用和靈活性2023-05-05Java Swing中的工具欄(JToolBar)和分割面版(JSplitPane)組件使用案例
這篇文章主要介紹了Java Swing中的工具欄(JToolBar)和分割面版(JSplitPane)組件使用案例,本文直接給出代碼實(shí)例和效果截圖,需要的朋友可以參考下2014-10-10spring aop之鏈?zhǔn)秸{(diào)用的實(shí)現(xiàn)
這篇文章主要介紹了spring aop之鏈?zhǔn)秸{(diào)用的實(shí)現(xiàn),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2019-02-02處理Log4j2不能打印行號(hào)的問(wèn)題(AsyncLogger)
這篇文章主要介紹了處理Log4j2不能打印行號(hào)的問(wèn)題(AsyncLogger),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-12-12SpringBoot中隨機(jī)鹽值+雙重SHA256加密實(shí)戰(zhàn)
本文主要介紹了SpringBoot中隨機(jī)鹽值+雙重SHA256加密實(shí)戰(zhàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2024-07-07java 基礎(chǔ)知識(shí)之網(wǎng)絡(luò)通信(TCP通信、UDP通信、多播以及NIO)總結(jié)
這篇文章主要介紹了java 基礎(chǔ)知識(shí)之網(wǎng)絡(luò)通信總結(jié)的相關(guān)資料,包括TCP通信、UDP通信、多播以及NIO,需要的朋友可以參考下2017-03-03Java數(shù)據(jù)結(jié)構(gòu)中雙向鏈表的實(shí)現(xiàn)
這篇文章主要介紹了Java數(shù)據(jù)結(jié)構(gòu)中雙向鏈表的實(shí)現(xiàn),雙向鏈表是一種常見(jiàn)的數(shù)據(jù)結(jié)構(gòu),它允許在鏈表中的任意位置進(jìn)行高效的插入和刪除操作,需要的朋友可以參考下2022-05-05mybatisplus如何在xml的連表查詢中使用queryWrapper
這篇文章主要介紹了mybatisplus如何在xml的連表查詢中使用queryWrapper,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-01-01