一:spring是什么(三大框架分别)?
struts 是 web 框架(jsp/action/actionfrom)
hibernate 是 orm框架,处于持久层.
spring 是容器框架,用于配置bean,并维护bean之间关系的框架
spring非常概念bean
bean 可以是java中的任何一种对象 javabean/service/action/数据源./dao, ioc(控制反转 inverse of control) di( dependency injection 依赖注入)
二:快速搭建一个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
<?xml version="1.0" encoding="UTF-8"?>
<!--
- Application context definition for JPetStore's business layer.
- Contains bean references to the transaction manager and to the DAOs in
- dataAccessContext-local/jta.xml (see web.xml's "contextConfigLocation").
-->
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd">
<!-- 在容器文件中配置bean(service/dao/domain/action/数据源) -->
<!-- bean 元素的作用是,当我们的spring框架加载时候,spring就会自动 创建(实例化)一个bean对象并放入内存-->
<bean id="userService" class="com.xlc.service.UserService">
<!-- UserService userService=new UserService(); -->
<property name="name">
<value>小宝</value>
</property>
</bean>
</beans>
4. 在Test.java中使用
//1.得到spring 的applicationContext对象(容器对象)
ApplicationContextac=new ClassPathXmlApplicationContext("applicationContext.xml");
UserServiceus=(UserService) ac.getBean("userService");
us.sayHello();
使用spring ,没有new 对象,我们把创建对象的任务交给spring框架
spring的运行原理图(这里就直接用韩老师的示例图了):
spring实际上是一个容器框架,可以配置各种bean(action/service/domain/dao),并且可以维护bean与bean的关系,当我们需要使用某个bean的时候,我们可以getBean(id),使用即可.
ioc是什么?
ioc(inverse of controll ) 控制反转: 所谓控制反转就是把创建对象(bean),和维护对象(bean)的关系的权利从程序中转移到spring的容器(applicationContext.xml),而程序本身不再维护.
DI是什么?
di(dependency injection) 依赖注入: 实际上di和ioc是同一个概念,spring设计者认为di更准确表示spring核心技术