日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

Spring框架使用规范和IOC的开发

發布時間:2025/3/21 javascript 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Spring框架使用规范和IOC的开发 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Spring框架是一個管理對象的容器,就像Web容器Tomcat可以管理servlet的生命周期,Spring容器可以管理對象的生命周期。

Spring的組件化讓類和類對象之間的關系變得不那么緊密,降低了耦合度。

Spring的IOC的XML開發

IOC容器:Spring的IOC容器在最底層實際上就是一個對象的工廠,該工廠在程序中的實現是ApplicationContext這個接口, 因此使用spring創建對象的時候首先需要創建spring的工廠(new ClassPathXMLApplicationContext())。

DI:為需要的屬性賦值就是依賴注入的過程。

注入方式:
①property標簽:通過set方法賦值(注入)

< property name="屬性名" value="屬性值" >< /property>

②contructor-arg標簽:通過構造器賦值(注入),必須有對應的構造器才能注入

< contructor-arg value="構造器的值1" index="0">< /contructor-arg> < contructor-arg value="構造器的值2" index="1" type="">< /contructor-arg> (通過索引指定參數位置) < contructor-arg value="構造器的值3" index="2">< /contructor-arg>

③p命名空間為類的屬性賦值:

<bean id="" class="" p:屬性名1="" p:屬性名2=""> </bean>

屬性的賦值方式:
①value:通過value可以賦值給字面量的值,包括所有的基本數據類型,基本數據類型的包裝類,string類型等.
②ref:可以把當前spring管理的某一個bean對象賦值給該屬性.
③集合屬性的賦值:

< property name="屬性名" >< list>字面量: <value></value>引用數據類型:<ref bean=""/>< /list> < /property>

④數組屬性的賦值:

< property name="屬性名" >< array>字面量: <value></value>引用數據類型:<ref bean=""/>< /array> < /property>

⑤map屬性的賦值:

< property name="屬性名" >< map><!-- map里面一個entry代表一個鍵值對 --><entry><key><value></value></key><value></value></entry><entry><key><value></value></key><value></value></entry>< /map> < /property>

bean管理對象的作用域:

若spring通過單例的方法管理對象,會在工廠容器初始化時就創建該對象,調用該類的構造器;若是多例的方式,則會在使用時創建

bean管理對象的生命周期:
① 創建對象:調用類的構造器
②依賴注入:依賴注入屬性
③初始化方法:
④對象的使用:使用對象調用方法
⑤對象的銷毀:spring容器的關閉

bean加載資源文件到spring容器中:

<!-- db.properties文件放在src下 --> <context:property-placeholder location="classpath:db.properties"/>

bean使用資源文件:使用${jdbc.屬性名}的方式:

<bean id="datasource" class="com.alibaba.druid.pool.DruidDataSource"> <property name="driverClassName" value="${jdbc.driver}"></property><property name="url" value="${jdbc.url}"></property><property name="username" value="${jdbc.username}"></property><property name="password" value="${jdbc.password}"></property> </bean>

bean的自動裝配:通過autowire屬性:
autowire:設置了該屬性后,spring就可以通過某種方式自動為屬性賦值.

autowire=“byName”:根據名稱自動裝配,引用數據類型bean的id只要和該bean要賦值的屬性名一致就可以自動賦值.

autowire=“byType”:根據類型自動裝配,引用數據類型bean的類型只要和該bean要賦值的屬性類型一致就可以自動賦值.

Spring的IOC的注解開發

使用注解來標識一個bean,并開啟組件包掃描:

在需要交給spring管理的類上使用@Controller|@Service|@Repository,相當于在spring配置文件中配置了該類的bean.

import org.springframework.stereotype.Controller;@Controller(value="") //為自動生成的bean指定id public class UserController {} <context:component-scan base-package="com.sms.spring"></context:component-scan>

接口和抽象類不能進行實例化,在類上面加了注解就相當于在xml配置文件中添加了< bean>,因此所有注解應該放在實現類上.

開啟組件包掃描:掃描包下所有的類上的注解,這些類會自動在spring的配置文件中生成對應的bean,這些bean的id會以類的首字母小寫為值.

掃描組件的包含:注意要將默認的掃描關閉.use-default-filters=“false”

<context:component-scan base-package="com.sms.spring" use-default-filters="false"><context:include-filter type="annotation" expression="注解的全類名"/></context:component-scan>

掃描組件的排除:注意要將默認的掃打開.use-default-filters=“true”

<context:component-scan base-package="com.sms.spring" use-default-filters="false"><context:exclude-filter type="annotation" expression="注解的全類名"/> </context:component-scan>

基于注解的自動屬性注入: 使用@autowired

其中自動裝配的屬性的類型UserService需要和spring中已有的bean的類型保持一致,其中UserServiceImpl已經過掃描,因此可以進行屬性的自動注入.

@Controller public class UserController {@Autowiredprivate UserService userService;}

基于注解的自動屬性注入的設置: 通過@Autowired + @Qulaifier(value=“id名”)

指定spring容器中bean的id等于id名的那個bean賦值給該屬性.

總結

以上是生活随笔為你收集整理的Spring框架使用规范和IOC的开发的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。