日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

Spring(二):Spring通過IOC來創(chuàng)建對(duì)象

瀏覽:45日期:2023-07-04 09:18:55
目錄一、IOC如何獲取對(duì)象1.1 Spring是如何獲取對(duì)象的?1.2 改造案例由xml選擇創(chuàng)建對(duì)象二、IOC是通過什么方式來創(chuàng)建對(duì)象的?2.1 通過無參構(gòu)造函數(shù)來創(chuàng)建對(duì)象2.2 通過有參構(gòu)造方法來創(chuàng)建對(duì)象三、Spring的配置3.1 alias(別名):3.2 Bean的配置:3.3 import(團(tuán)隊(duì)合作之導(dǎo)入)總結(jié)一、IOC如何獲取對(duì)象1.1 Spring是如何獲取對(duì)象的?

①新建一個(gè)maven項(xiàng)目后導(dǎo)入webmvc的依賴:因?yàn)閣ebmvc包含了很多其他依賴,為了省事,干脆導(dǎo)入一個(gè)總的,方便省事!版本嘛!個(gè)人比較喜歡用最新版。

<dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>5.3.5</version> </dependency>

②新建實(shí)體測(cè)試類:

public class Person { private String name; private int age; private String like; private String high; //get、set、tostring方法為了篇幅省略,可以自己加或者使用lombok}

③在resources目錄下新建ContextAplication.xml文件

<?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='entity.Person'><property name='age' value='23'></property><property name='name' value='丁大大'></property><property name='like' value='釣魚'></property><property name='high' value='173'></property> </bean></beans>

④以上前提之后,你會(huì)發(fā)現(xiàn)你的測(cè)試Person類種發(fā)生了變化:點(diǎn)擊可以跳轉(zhuǎn)到指定的xml位置哦~

Spring(二):Spring通過IOC來創(chuàng)建對(duì)象

⑤測(cè)試:

Context.getBean() 不指定類時(shí),需要強(qiáng)制轉(zhuǎn)換,所以建議使用第二種方式來獲取對(duì)象

public class Test { public static void main(String[] args) {ApplicationContext Context = new ClassPathXmlApplicationContext('ContextAplication.xml');//Person person = (Person) Context.getBean('Person');//這里不指定的話需要強(qiáng)轉(zhuǎn),建議用下面的方式來拿對(duì)象Person person = Context.getBean('Person',Person.class);System.out.println(person); }}

⑥執(zhí)行結(jié)果如下:成功拿到值!

Spring(二):Spring通過IOC來創(chuàng)建對(duì)象

⑦總結(jié):

控制: 傳統(tǒng)的程序?qū)ο蟮膭?chuàng)建是由程序來控制創(chuàng)建的。 反轉(zhuǎn): 交給Spring容器來創(chuàng)建對(duì)象,而程序只負(fù)責(zé)被動(dòng)的接收對(duì)象。這就是反轉(zhuǎn)。 依賴注入: 就是通過set方法來注入的。1.2 改造案例由xml選擇創(chuàng)建對(duì)象

①xml:

<bean /> <bean /> <bean class='service.impl.PersonServiceImpl'><property name='studentMapper' ref='StudentMapperImpl'/> </bean>

②測(cè)試:

ApplicationContext Context1 = new ClassPathXmlApplicationContext('ContextAplication.xml');PersonServiceImpl personServiceImpl = Context1.getBean('PersonServiceImpl', PersonServiceImpl.class);personServiceImpl.getPersonInfo();

③執(zhí)行結(jié)果:

Spring(二):Spring通過IOC來創(chuàng)建對(duì)象

⑤總結(jié):

對(duì)象由Spring 來創(chuàng)建 , 管理 , 裝配 !這就是 IOC!

二、IOC是通過什么方式來創(chuàng)建對(duì)象的?2.1 通過無參構(gòu)造函數(shù)來創(chuàng)建對(duì)象

①以Person類為例子,但是加上一個(gè)無參構(gòu)造函數(shù)!

public class Person { private String name; private int age; private String like; private String high; public Person() {//輸出一句話證明自己被調(diào)用了!System.out.println('我是Person類的無參構(gòu)造函數(shù)!我被調(diào)用了!!!!'); } //set、get、tostring方法因?yàn)槠蚴÷裕?qǐng)手動(dòng)加上!}

②xml中配置:

<?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='entity.Person'><property name='age' value='23'></property><property name='name' value='丁大大'></property><property name='like' value='釣魚'></property><property name='high' value='173'></property> </bean></beans>

③測(cè)試類:

public class Test { public static void main(String[] args) {ApplicationContext Context = new ClassPathXmlApplicationContext('ContextAplication.xml');Person person = Context.getBean('Person', Person.class);System.out.println(person); }}

④執(zhí)行結(jié)果:

Spring(二):Spring通過IOC來創(chuàng)建對(duì)象

⑤去除無參構(gòu)造,增加有參構(gòu)造:

Spring(二):Spring通過IOC來創(chuàng)建對(duì)象

xml配置程序直接報(bào)錯(cuò):

Spring(二):Spring通過IOC來創(chuàng)建對(duì)象

⑥總結(jié):

Spring創(chuàng)建對(duì)象默認(rèn)是通過無參構(gòu)造函數(shù)創(chuàng)建的!能通過有參構(gòu)造函數(shù)來創(chuàng)建對(duì)象嘛?能!看下面!

2.2 通過有參構(gòu)造方法來創(chuàng)建對(duì)象

①前提于 2.1 一致,新增有參構(gòu)造函數(shù):(因?yàn)轭愔校J(rèn)的也就是不寫構(gòu)造參數(shù)就是無參構(gòu)造,寫了有參構(gòu)造才能真正意義上去除無參構(gòu)造,這個(gè)不用解釋太多吧,java基礎(chǔ)的內(nèi)容了~!)

public Person(String name, int age, String like, String high) {this.name = name;this.age = age;this.like = like;this.high = high; }

②xml配置文件中要發(fā)生一定的改變:

<?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='entity.Person'><!--<property name='name' value='丁大大'></property>--><!--<property name='age' value='23'></property>--><!--<property name='like' value='釣魚'></property>--><!--<property name='high' value='173'></property>--><constructor-arg index='0' value='丁大大'/><constructor-arg name='age' value='23'/><constructor-arg type='java.lang.String' value='釣魚'/><constructor-arg type='java.lang.String' value='173'/> </bean></beans>

③執(zhí)行結(jié)果:

Spring(二):Spring通過IOC來創(chuàng)建對(duì)象

⑤總結(jié):

無參構(gòu)造函數(shù)指定值時(shí)使用 propert 標(biāo)簽 有參構(gòu)造函數(shù)指定值時(shí)使用 constructor-arg 標(biāo)簽,三種寫法 index --通過下標(biāo)來給屬性賦值name --通過屬性名稱來給屬性賦值type -- 指定屬性的類型來給屬性賦值 基本類型可以直接寫 引用類型得加上全稱,如:java.lang.String 位置跟index差不多,依次從上到下對(duì)應(yīng)屬性的從上到下。 在配置文件加載的時(shí)候。其中管理的對(duì)象都已經(jīng)初始化了!三、Spring的配置3.1 alias(別名): 為bean設(shè)置別名,可設(shè)置多個(gè)!

①xml:

<?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'> <alias name='Person' alias='personAlias1'/> <alias name='Person' alias='personAlias2'/> <alias name='Person' alias='personAlias3'/> <bean class='entity.Person'><constructor-arg index='0' value='丁大大'/><constructor-arg name='age' value='23'/><constructor-arg type='java.lang.String' value='釣魚'/><constructor-arg type='java.lang.String' value='173'/> </bean></beans>

②測(cè)試類:

public class Test { public static void main(String[] args) {ApplicationContext Context = new ClassPathXmlApplicationContext('ContextAplication.xml');Person person = Context.getBean('personAlias1', Person.class);System.out.println(person); }}

③執(zhí)行結(jié)果:

Spring(二):Spring通過IOC來創(chuàng)建對(duì)象

④總結(jié):講實(shí)話,這玩意用處不大,因?yàn)檫€有更好的方式來設(shè)置別名!

3.2 Bean的配置: bean就相當(dāng)于java對(duì)象,由Spring創(chuàng)建和管理

①xml:

<?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'> <alias name='Person' alias='personAlias1'/> <alias name='Person' alias='personAlias2'/> <alias name='Person' alias='personAlias3'/> <bean name='person1,person2 person3;person4' class='entity.Person'><constructor-arg index='0' value='丁大大'/><constructor-arg name='age' value='23'/><constructor-arg type='java.lang.String' value='釣魚'/><constructor-arg type='java.lang.String' value='173'/> </bean></beans>

②測(cè)試類:

public class Test { public static void main(String[] args) {ApplicationContext Context = new ClassPathXmlApplicationContext('ContextAplication.xml');Person person = Context.getBean('person4', Person.class);System.out.println(person); }}

③執(zhí)行結(jié)果:

Spring(二):Spring通過IOC來創(chuàng)建對(duì)象

④總結(jié):

id是bean的唯一標(biāo)識(shí)符 如果沒有配置id,那么name相當(dāng)于標(biāo)識(shí)符,并且可以設(shè)置多個(gè) name也是別名,可多個(gè),并且可以通過 逗號(hào) 空格 分號(hào) 來分隔,是不是比alias別名方便?所以設(shè)置別名我們一般使用name id和name同時(shí)存在,name只是別名,不是標(biāo)識(shí)符 class是類的全限定名 包名+類名

Spring(二):Spring通過IOC來創(chuàng)建對(duì)象

3.3 import(團(tuán)隊(duì)合作之導(dǎo)入)

①在實(shí)際工作的開發(fā)過程中,一個(gè)項(xiàng)目可能由多個(gè)程序員來進(jìn)行開發(fā),所以為了解決共性問題,比如:同一文件提交時(shí)都進(jìn)行了修改可能引起沖突,所以我們使用import來解耦!

②新建多個(gè)xml配置文件:

Spring(二):Spring通過IOC來創(chuàng)建對(duì)象

ContextAplication.xml:

<?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'> <import resource='dyj1.xml'/> <import resource='dyj3.xml'/> <import resource='dyj2.xml'/></beans>

dyj1.xml:

<?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 name='person1,person2 person3;person4' class='entity.Person'><constructor-arg index='0' value='丁大大1'/><constructor-arg name='age' value='23'/><constructor-arg type='java.lang.String' value='釣魚1'/><constructor-arg type='java.lang.String' value='173'/> </bean></beans>

dyj2.xml:

<?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 name='person1,person2 person3;person4' class='entity.Person'><constructor-arg index='0' value='丁大大2'/><constructor-arg name='age' value='23'/><constructor-arg type='java.lang.String' value='釣魚2'/><constructor-arg type='java.lang.String' value='173'/> </bean></beans>

dyj3.xml:

<?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 name='person1,person2 person3;person4' class='entity.Person'><constructor-arg index='0' value='丁大大3'/><constructor-arg name='age' value='23'/><constructor-arg type='java.lang.String' value='釣魚3'/><constructor-arg type='java.lang.String' value='173'/> </bean></beans>

③執(zhí)行:

Spring(二):Spring通過IOC來創(chuàng)建對(duì)象

④總結(jié):

如果三個(gè)文件都是對(duì)同一個(gè)操作同一個(gè)類,或者說內(nèi)容一致,那么就以主xml中從上到下最后一個(gè)impot為準(zhǔn)。 語(yǔ)法格式: 優(yōu)點(diǎn): 每個(gè)人開發(fā)的都是獨(dú)立的,如果重復(fù)的內(nèi)容,Spring會(huì)幫我們自動(dòng)合并!降低了程序的沖突性!大大提高了后期代碼的可維護(hù)性!總結(jié)

本篇文章就到這里了,希望能幫助到你,也希望您能夠多多關(guān)注好吧啦網(wǎng)的更多內(nèi)容!

標(biāo)簽: Spring
相關(guān)文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
99久久婷婷这里只有精品| 樱桃成人精品视频在线播放| 国产综合精品一区| 欧美sm一区| 亚洲v在线看| 久久久成人网| 欧美精品资源| 亚洲午夜av| 欧美 日韩 国产精品免费观看| 国产精品高颜值在线观看| 成人精品国产亚洲| 黑森林国产精品av| 91亚洲自偷观看高清| 97在线精品| av中文字幕在线观看第一页| 综合日韩av| 亚州av乱码久久精品蜜桃| 影音先锋久久| 日本99精品| 国产91在线精品| 伊人久久亚洲热| 91成人小视频| 亚洲啊v在线| 久久午夜精品| 国产伦精品一区二区三区视频 | 欧美91视频| 美国欧美日韩国产在线播放| 国产精品一卡| 九九综合在线| 91精品国产一区二区在线观看| 久久天堂影院| 最新国产拍偷乱拍精品| 久久精品999| 欧美日韩国产精品一区二区亚洲| 热久久久久久| 亚洲专区一区| 日本蜜桃在线观看视频| 中文字幕成人| 在线日韩中文| 欧美日韩在线精品一区二区三区激情综合| 久久亚洲资源中文字| 国产女优一区| 欧美日韩视频免费观看| 国产伦理一区| 日韩高清三区| 亚洲激情中文| 国产精品久久久久久久久久10秀 | 无码日韩精品一区二区免费| 日韩av福利| 久久精品国产99国产精品| 亚洲免费高清| 国产盗摄——sm在线视频| 视频一区欧美精品| 日本精品不卡| 日韩国产综合| 国产一区二区三区天码| 国产调教精品| 欧美日韩亚洲一区二区三区在线| 免费欧美日韩| 亚洲激精日韩激精欧美精品| 少妇精品导航| 亚洲h色精品| 99精品网站| 欧美日韩中文字幕一区二区三区| 日韩免费视频| 欧美日韩精品免费观看视欧美高清免费大片 | 国产福利资源一区| 日韩美女精品| 日韩精品一区二区三区免费视频| 免费日韩av片| 亚洲三级国产| 国产欧美一区二区三区国产幕精品 | 久久久夜夜夜| 亚洲婷婷在线| 久热精品在线| 亚洲一区日本| 亚洲欧洲美洲国产香蕉| 日韩在线成人| 免费日韩成人| 亲子伦视频一区二区三区| 欧美精品一区二区三区精品| re久久精品视频| 日本不卡一二三区黄网| 国产精品玖玖玖在线资源| 久久午夜影院| 狠狠久久婷婷| 日本视频在线一区| 精品国产乱码久久久久久樱花| 高清不卡一区| 午夜欧美理论片| 最新国产精品视频| 91在线成人| 亚洲小说欧美另类婷婷| 亚洲人www| 国产黄大片在线观看| 老鸭窝毛片一区二区三区| 欧美国产精品| 亚洲一卡久久| 久久一区精品| 男人的天堂亚洲一区| 国产a久久精品一区二区三区| 91久久午夜| 丝袜诱惑一区二区| 亚洲精品影视| 久久国产小视频| 亚洲69av| 蜜桃精品在线| 美女国产一区二区三区| 久久高清国产| 欧洲av一区二区| 精品欠久久久中文字幕加勒比| 一本色道精品久久一区二区三区| 国产高清精品二区| 日韩精品一区二区三区免费视频 | 精品国产乱码久久久久久樱花| 中文字幕亚洲影视| 夜夜嗨网站十八久久 | 在线精品视频一区| 日韩一区二区三区免费播放| 91福利精品在线观看| 亚洲一区二区免费看| 日韩三区在线| 岛国av在线播放| 成人国产精品久久| 国语精品一区| 精品一区二区三区四区五区| 日本强好片久久久久久aaa| 最近国产精品视频| 丝瓜av网站精品一区二区| 久久精品影视| 国产在线看片免费视频在线观看| 欧美日韩亚洲一区在线观看| 日韩一区精品| 国产日韩欧美三级| 国产精品igao视频网网址不卡日韩| 欧美一区二区三区久久| 日韩和欧美一区二区三区| 亚洲精品视频一二三区| 国产日韩一区二区三免费高清 | 成人精品动漫一区二区三区| 激情综合婷婷| 在线观看精品| 免费av一区二区三区四区| 日韩视频一区| 夜久久久久久| 亚州av一区| 免费精品一区| 青青青免费在线视频| 亚洲激情偷拍| 欧美影院精品| 亚洲成人不卡| 亚洲一二av| 精品国产亚洲一区二区三区大结局| 国内自拍视频一区二区三区| 深夜视频一区二区| 亚洲人成网站在线在线观看| 日韩激情啪啪| 91综合视频| 久久av一区| 麻豆国产欧美日韩综合精品二区| 中文另类视频| 欧美精品三级在线| 日韩电影在线视频| 亚洲精品伊人| 日本免费一区二区三区四区| 热久久免费视频| 日韩网站中文字幕| 国产乱子精品一区二区在线观看| 91精品国产乱码久久久久久久| 四虎精品一区二区免费| 久久男女视频| 国产精品调教| 免费人成黄页网站在线一区二区| 国产精品久久久久久久免费观看| 免费在线观看成人| 丁香六月综合| 精品在线网站观看| 久久精品97| 亚洲一区二区日韩| 久久理论电影| 日韩免费高清| 精品视频黄色| 国产欧美精品久久| 亚洲精品一级二级三级| 丝袜a∨在线一区二区三区不卡| 色婷婷久久久| 四虎成人av| 福利一区和二区| 久久精品国产亚洲一区二区三区| 亚洲视频电影在线| 精品一区三区| 激情综合自拍| 色婷婷久久久| 久久蜜桃精品| 久久理论电影| 午夜久久99| 日韩中文字幕91| 日韩成人午夜精品| 国产免费av国片精品草莓男男 | 首页亚洲欧美制服丝腿|