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

您的位置:首頁技術文章
文章詳情頁

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

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

①新建一個maven項目后導入webmvc的依賴:因為webmvc包含了很多其他依賴,為了省事,干脆導入一個總的,方便省事!版本嘛!個人比較喜歡用最新版。

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

②新建實體測試類:

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>

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

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

⑤測試:

Context.getBean() 不指定類時,需要強制轉換,所以建議使用第二種方式來獲取對象

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

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

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

⑦總結:

控制: 傳統(tǒng)的程序對象的創(chuàng)建是由程序來控制創(chuàng)建的。 反轉: 交給Spring容器來創(chuàng)建對象,而程序只負責被動的接收對象。這就是反轉。 依賴注入: 就是通過set方法來注入的。1.2 改造案例由xml選擇創(chuàng)建對象

①xml:

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

②測試:

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

③執(zhí)行結果:

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

⑤總結:

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

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

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

public class Person { private String name; private int age; private String like; private String high; public Person() {//輸出一句話證明自己被調用了!System.out.println('我是Person類的無參構造函數(shù)!我被調用了!!!!'); } //set、get、tostring方法因為篇幅原因省略,請手動加上!}

②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>

③測試類:

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í)行結果:

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

⑤去除無參構造,增加有參構造:

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

xml配置程序直接報錯:

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

⑥總結:

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

2.2 通過有參構造方法來創(chuàng)建對象

①前提于 2.1 一致,新增有參構造函數(shù):(因為類中,默認的也就是不寫構造參數(shù)就是無參構造,寫了有參構造才能真正意義上去除無參構造,這個不用解釋太多吧,java基礎的內容了~!)

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í)行結果:

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

⑤總結:

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

①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>

②測試類:

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í)行結果:

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

④總結:講實話,這玩意用處不大,因為還有更好的方式來設置別名!

3.2 Bean的配置: bean就相當于java對象,由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>

②測試類:

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í)行結果:

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

④總結:

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

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

3.3 import(團隊合作之導入)

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

②新建多個xml配置文件:

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

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)建對象

④總結:

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

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

標簽: Spring
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
日韩一区电影| 天堂成人国产精品一区| 亚洲天堂av资源在线观看| 欧美精品一区二区三区精品| 久久精品国产www456c0m| 日韩欧美国产精品综合嫩v| 免费观看亚洲| 成人免费电影网址| 99热精品久久| 在线亚洲观看| 亚洲精品影院在线观看| 日韩高清在线一区| 日韩中文字幕| 国产精品成人国产| 久久精品网址| 丝袜美腿一区| 午夜国产精品视频免费体验区| 午夜精品婷婷| 亚州国产精品| 欧美激情aⅴ一区二区三区 | 国产91精品对白在线播放| 亚洲精品.com| 中文一区二区| 四虎成人精品一区二区免费网站| 日韩av字幕| 风间由美中文字幕在线看视频国产欧美| 久久精品五月| 久久婷婷亚洲| 麻豆91精品| 日韩av字幕| 国产一区二区亚洲| 日韩一级网站| 欧美一区不卡| 91tv亚洲精品香蕉国产一区| 羞羞答答国产精品www一本| 欧美亚洲tv| 日韩成人高清| 日韩精品一二三| 亚洲欧美专区| 久久中文字幕一区二区三区| 99久久99视频只有精品| 国产 日韩 欧美一区| 夜夜嗨av一区二区三区网站四季av| 日韩高清欧美激情| 久久一区视频| 日韩午夜黄色| 乱一区二区av| 日韩视频一区| 美女高潮久久久| 欧美日韩国产亚洲一区| 日本麻豆一区二区三区视频| 捆绑调教日本一区二区三区| 亚洲一区免费| 精品国产一区二区三区性色av| 欧美 日韩 国产精品免费观看| 91九色综合| 久久久噜噜噜| 国产三级精品三级在线观看国产| 99免费精品| 欧美精品1区| aⅴ色国产欧美| 精品精品久久| 亚洲精品免费观看| 久久精品动漫| 国产精品久久国产愉拍| 你懂的国产精品| 久久国产66| 五月天av在线| 国产精品调教视频| 水野朝阳av一区二区三区| 91视频久久| 视频小说一区二区| 国产美女精品视频免费播放软件| 伊人久久成人| 国产欧洲在线| 国产精品白丝久久av网站 | 国产91久久精品一区二区| 国产精品第一| 日韩综合一区二区三区| 91成人网在线观看| 国产一区二区精品久| 亚洲狼人精品一区二区三区| 伊人精品一区| 国产一区二区三区探花| 日韩av网站在线观看| 欧美不卡高清| 国产一区福利| 国产精品嫩草影院在线看| 亚洲欧美日韩一区在线观看| 波多视频一区| 精品国产亚洲一区二区在线观看| 亚洲精品无播放器在线播放| 欧美日韩国产综合网| 亚洲一级少妇| 国产一区二区三区四区五区传媒| 久久国产欧美日韩精品| 综合日韩在线| 国产精品美女| 成人av动漫在线观看| 日韩理论片av| 黄色网一区二区| 日韩福利在线观看| 日韩一区精品| 在线精品福利| 免费精品视频最新在线| 日韩午夜高潮| 偷拍欧美精品| 999国产精品999久久久久久| 在线看片国产福利你懂的| 精品亚洲成人| 精品视频久久| 国产一区二区三区久久| 国产欧美一区二区色老头| 日韩黄色在线观看| 日本一区福利在线| 亚洲一二av| 石原莉奈一区二区三区在线观看 | 中文不卡在线| 日韩精品一级中文字幕精品视频免费观看| 亚洲小说欧美另类婷婷| 青青久久av| 亚洲欧美一区在线| 国产在线日韩| 在线亚洲国产精品网站| 美女黄网久久| 天堂俺去俺来也www久久婷婷| 日韩欧美另类中文字幕| 色综合视频一区二区三区日韩| 中文字幕亚洲影视| 亚洲精品乱码久久久久久蜜桃麻豆| 丝袜国产日韩另类美女| 蜜桃av一区二区三区电影| 亚洲精品亚洲人成在线观看| 18国产精品| 久久精品国产网站| 三上悠亚国产精品一区二区三区 | 日本欧美不卡| 久久在线视频免费观看| 夜夜精品视频| 亚洲精品美女91| 日韩高清不卡在线| 美女久久久久久| 日韩成人a**站| 91精品一区二区三区综合| 国产毛片久久| 日韩国产欧美一区二区三区| 国产精品一区二区精品| 久久精品国产网站| 久久免费国产| 亚洲精品极品| 久久影院资源站| 国产91精品对白在线播放| 久色成人在线| 国产精品啊v在线| 日韩久久电影| 中文一区一区三区免费在线观| 国产精品一区免费在线| 国际精品欧美精品| 国产一区久久| 日韩激情综合| 日韩一区三区| 蜜臀久久久久久久| 国产精品亚洲综合色区韩国| 亚洲精品国产嫩草在线观看| 一区视频在线| 欧美日韩亚洲一区| 欧洲av不卡| 亚洲综合五月| 成人在线超碰| 久久午夜影视| 精品网站aaa| 国产精品毛片在线看| 日韩av不卡在线观看| 日韩欧美精品综合| 最新亚洲国产| 色一区二区三区| 蜜桃av一区二区三区电影| 国产一区二区三区免费在线| 9久re热视频在线精品| 欧美成人一二区| 日韩视频不卡| 久久免费福利| 亚洲一区日韩在线| 国产成人精品一区二区三区免费 | 老司机久久99久久精品播放免费| 国产精品亚洲欧美一级在线| 久久天堂成人| 欧美欧美黄在线二区| 波多野结衣一区| 九九久久国产| 亚洲字幕久久| 蜜桃精品在线| 国产精品综合色区在线观看| 精品91久久久久| 激情中国色综合| 婷婷成人av| 日韩成人亚洲| 久久超碰99| 亚洲精品国产精品粉嫩| 99久精品视频在线观看视频|