- 以下案例源码:https://github.com/Way123Ne/SSH/tree/master/myspring1
- spring是什么?
struts 是 web 框架 (jsp/action/actionfrom)
hibernate 是 orm框架,处于持久层.
spring 是容器框架,用于配置bean,并维护bean之间关系的框架
☞ spring中有一个非常概念: bean (是java中的任何一种对象 javabean/service/action/数据源./dao, ioc(控制反转 inverse of control) di( dependency injection 依赖注入)
☞ 画一个框架图--à见图解 day01
2.快速入门案例
开发一个spring项目.
1>引入spring的开发包(最小配置spring.jar 该包把常用的jar都包括, 还要 写日志包 common-logging.jar
2>创建spring的一个核心文件 applicationContext.xml, [hibernate有核心 hibernate.cfg.xml struts核心文件 struts-config.xml], 该文件一般放在src目录下,该文件中需要引入 xsd文件 :
可以从给出的案例中拷贝一份.
3>配置bean
<!-- 在容器文件中配置bean(service/dao/domain/action/数据源) -->
<!-- bean元素的作用是,当我们的spring框架加载时候,spring就会自动的创建一个bean对象,并放入内存
UserService userSerivce=new UserService();
userSerivce.setName("韩顺平");
-->
<bean id="userService" class="com.service.UserService">
<!-- 这里就体现出注入的概念. -->
<property name="name">
<value>Wayne</value>
</property>
</bean>
4>在Test.java中,我们怎么使用
//我们现在使用spring来完成上面的任务
//1.得到spring 的applicationContext对象(容器对象)
ApplicationContext ac=new ClassPathXmlApplicationContext("applicationContext.xml");
UserService us=(UserService) ac.getBean("userService");
us.sayHello();
细节讨论--》传统的方法和使用spring的方法区别?
1)使用spring ,没有new 对象,我们把创建对象的任务交给spring框架
2)spring的运行原理图:--à见图解 day03
5>我们再看spring
对上面案例总结:
1)spring实际上是一个容器框架,可以配置各种bean(action/service/domain/dao),并且可以维护bean与bean的关系,当我们需要使用某个bean的时候,我们可以getBean(id),使用即可.
3.ioc是什么?
答 :ioc(inverse of controll ) 控制反转: 所谓控制反转就是把创建对象(bean),和维护对象(bean)的关系的权利从程序中转移到spring的容器(applicationContext.xml),而程序本身不再维护.
4.DI是什么?
答: di(dependency injection) 依赖注入: 实际上di和ioc是同一个概念,spring设计者认为di更准确表示spring核心技术
☞ 学习框架,最重要的就是学习各个配置.
把Applicationcontext做成一个单例的.