spring 入门 1
生活随笔
收集整理的這篇文章主要介紹了
spring 入门 1
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Spring介紹
Spring一站式框架
Spring搭建
1.導包
2.創建一個對象
3.書寫配置注冊對象到容器
位置任意(建議放到src下)
配置文件名任意(建議applicationContext.xml)
導入schema約束
注冊對象到容器(applicationContext.xml配置文件)
4、編寫測試類
@Test public void name() {ClassPathXmlApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");User bean = ac.getBean(User.class);System.out.println(bean); }Spring 概念
1.思想
IOC Inverse of Control 控制反轉
DI Dependency Injection 依賴注入
實現IOC思想需要DI支持 注入方式:set方法注入構造方法注入字段注入 注入類型:值類型注入 8大基本數據類型引用類型注入 將依賴帶下注入2.applicationContext&BeanFactory
BeanFactory接口(在資源匱乏的環境可以使用BeanFactory,基本用不到) spring原始接口.針對原始接口的實現類功能較為單一 BeanFactory接口實現類的容器.特點是每次在獲得對象時才會創建對象 ApplicationContext 每次容器啟動時就會創建容器中配置的所有對象.并提供更多功能 叢類路徑下加載配置文件:ClassPathXmlApplicationContext(常用) 從硬盤絕對路徑下加載配置件:FileSystemXmlApplicationContext("d:/xxx/yyy/xxx")spring配置詳解
1.Bean元素
<!-- Bean元素:使用該元素描述需要spring容器管理的對象class屬性:被管理對象的完整類名.name屬性:給被管理的對象起個名字.獲得對象時根據該名稱獲得對象. 可以重復.可以使用特殊字符.id屬性: 與name屬性一模一樣. 名稱不可重復.不能使用特殊字符.結論: 盡量使用name屬性.scope屬性:singleton(默認值):單例對象.被標識為單例的對象在spring容器中只會存在一個實例prototype:多例原型.被標識為多例的對象,每次再獲得才會創建.每次創建都是新的對象.整合struts2時,ActionBean必須配置為多例的.request:web環境下.對象與request生命周期一致.session:web環境下,對象與session生命周期一致.生命周期屬性:init-method:配置一個方法作為生命周期初始化方法.spring會在對象創建之后立即調用.destroy-method:配置一個方法作為生命周期的銷毀方法.spring容器在關閉并銷毀所有容器中的對象之前調用.--> <bean name="user"class="cn.zhli13.bean.User"scope="prototype"init-method="init"destroy-method="beforeDestory"></bean>spring創建對象的方式
1.空參構造方式
<bean name="user" class="cn.zhli13.bean.User"></bean>2.靜態工廠(了解)
public class UserFactory{public static User createUser(){return new User();} } <bean name="user2" class="cn.zhli13.bean.UserFactory" factory-method="createUser"></bean>3.實例工廠(了解)
public User createUser2(){return new User(); } <bean name="user3" factory-bean="userFactory" factory-method="createUser2"></bean> <!--創建工場實例--> <bean name="userFactory" class="cn.zhli13.bean.UserFactory"></bean>4.多模塊配置
<!--主配置文件導入其他spring配置文件--> <import resource="cn/zhli13/xxxxx/xxx/applicationContext.xml" />spring屬性注入
1.注入方式
<!-- set方式注入: --> <bean name="user" class="cn.zhli13.bean.User" ><!--值類型注入: 為User對象中名為name的屬性注入tom作為值 --><property name="name" value="tom" ></property><property name="age" value="18" ></property><!-- 引用類型注入: 為car屬性注入下方配置的car對象 --><property name="car" ref="car" ></property> </bean> <!-- 將car對象配置到容器中 --> <bean name="car" class="cn.zhli13.bean.Car" ><property name="name" value="蘭博基尼" ></property><property name="color" value="黃色" ></property> </bean><!-- 構造函數注入 --> <bean name="user2" class="cn.zhli13.bean.User" ><!-- name屬性: 構造函數的參數名 --><!-- index屬性: 構造函數的參數索引 --><!-- type屬性: 構造函數的參數類型--><constructor-arg name="name" index="0" type="java.lang.Integer" value="999" ></constructor-arg><constructor-arg name="car" ref="car" index="1" ></constructor-arg> </bean> <!-- 復雜類型注入 --> <bean name="cb" class="cn.zhli13.bean.CollectionBean" ><!-- 如果數組中只準備注入一個值(對象),直接使用value|ref即可 <property name="arr" value="tom" ></property>--><!-- array注入,多個元素注入 --><property name="arr"><array><value>tom</value><value>jerry</value><ref bean="user4" /></array></property><!-- 如果List中只準備注入一個值(對象),直接使用value|ref即可 <property name="list" value="jack" ></property>--><property name="list" ><list><value>jack</value><value>rose</value><ref bean="user3" /></list></property><!-- map類型注入 --><property name="map" ><map><entry key="url" value="jdbc:mysql:///crm" ></entry><entry key="user" value-ref="user4" ></entry><entry key-ref="user3" value-ref="user2" ></entry></map> </property><!-- prperties 類型注入 --><property name="prop" ><props><prop key="driverClass">com.jdbc.mysql.Driver</prop><prop key="userName">root</prop><prop key="password">1234</prop></props></property> </bean>總結
以上是生活随笔為你收集整理的spring 入门 1的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ZHS16GBK的数据库导入到字符集为A
- 下一篇: 迅雷APP怎么下载视频(测试了15款迅雷