初学spring(一)
1.spring 在ssh 中所處的位置
??
? struts 是web框架(jsp,action,actionform)
? hibernate 是orm框架,處于數(shù)據(jù)持久層
?spring 是容器框架,配置bean和管理bean之間的關(guān)系,其中 ioc(inverse of control) 即控制反轉(zhuǎn),和di (dependency injection) 依賴注入 是spring的核心。
2.開發(fā)一個簡單spring項目的流程
? a.引入開發(fā)spring項目所需的jar包: spring.jar(最小配置),日志包c(diǎn)ommon-logging.jar
? b.創(chuàng)建一個spring的核心配置文件 applicationContext.xml?[hibernate有核心?hibernate.cfg.xml?struts核心文件?struts-config.xml],?該文件一般放在src目錄下,
?? 該文件中引入?xsd文件?:可以從給出的案例(spring源代碼包)中拷貝一份.
????說明:
???? ??? <!--
???????????? ??? ?bean元素的作用就是,當(dāng)框架加載的時候,容器就會自動創(chuàng)建一個bean的實(shí)例,? 類似 UserService us = new UserService();
??????? ???????? ?property元素的作用就是,創(chuàng)建實(shí)例后給實(shí)例的屬性注入值, 類似 us.setName("spring");?
????????? ?-->
??? <bean id="userService" class="com.service.UserService">
??????? <property name="name">
??????????? <value>spring</value>
??????? </property>
??? </bean>?
3.創(chuàng)建實(shí)體bean,核心部分代碼
?
1 ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml"); //得到容器對象2 3 UserService us = (UserService) ac.getBean("userService"); //實(shí)例化bean
4 5 us.sayHello();
?4.Ioc(inverse of control 控制反轉(zhuǎn))? 和 Dj (dependency injection 依賴注入)
??? 控制反轉(zhuǎn): 把創(chuàng)建和維護(hù)對象的權(quán)力從代碼中轉(zhuǎn)移到spring容器(applicationContext.xml)中
????<bean id="userService" class="com.service.userServce">
??????? <property name="name" vlaue="spring"/>
??????? <property name="helloService" ref="helloService"/>
?? ?</bean>
?? ?<bean id="helloService" class="com.service.helloServce">
??????? <property name="words" vlaue="hello"/>
?? </bean>
?在這段配置中體現(xiàn)了spring的三個特點(diǎn):
??? a.配置bean
??? b.注入屬性
??? c.維護(hù)bean與bean之間的關(guān)系
??? 使用時通過getBean(bean_id) 來獲取對象實(shí)例。
? 在UserServce 類中 有這樣一段代碼:
??? .....
??? private HelloServce helloServce;
?? ....
?? 并為其創(chuàng)建get 和 set 方法。此時如果沒有實(shí)例化 helloServce,在UserServce 類直接調(diào)用 helloServce對象引用中的方法,肯定是報錯的。
通過在applicationContext.xml中配置上述代碼后,則可以直接調(diào)用。這也正好體現(xiàn)了spring的特點(diǎn)所在。
?? spring的底層實(shí)現(xiàn)機(jī)制可以采用 dom4j 和 java的反射機(jī)制來實(shí)現(xiàn),結(jié)合HashMap 來維護(hù)實(shí)例對象的關(guān)系。
?? spring實(shí)際上是一個容器框架,可以維護(hù)web層,業(yè)務(wù)層,dao層(持久層)的各個組件,
?? 注:struts主要充當(dāng)web層,接管jsp/action/表單等,主要體現(xiàn)在數(shù)據(jù)輸入,數(shù)據(jù)處理以及數(shù)據(jù)的展示。有包含view以及control層。
??????? 在mvc這個概念中,model層包含 業(yè)務(wù)層,dao層以及持久層。
?
?
?
?說明:部分內(nèi)容摘錄自網(wǎng)絡(luò)
?
轉(zhuǎn)載于:https://www.cnblogs.com/yiliweichinasoft/p/3474574.html
總結(jié)
以上是生活随笔為你收集整理的初学spring(一)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 基于visual Studio2013解
- 下一篇: MapReduce多表连接