1. 什么是spring?
spring是一款分层的full-stack(一站式)轻量级开源框架。其官网为:
http://www.springsource.org/。
所谓的分层是指sun公司提供的三层结构:web层(表现层)、业务逻辑层、数据访问层(持久化层、集成层)。
一站式是指:spring针对每一层结构都有解决方案,web层使用springMVC技术,业务逻辑层使用spring的bean管理,数据访问层使用JDBC和Template技术。
2. spring的核心?
spring的核心技术分为IOC和AOP技术。
<1>IOC(反转控制)
IOC(Inverse of control)的作用是将对象的创建全,交由spring完成。
<2>AOP(面向切面编程)
AOP(Aspect Oriented Programming)是面向对象的延伸,不是替换面对对象,是用来解决面向对象中的一些问题。
3. spring的优点?
<1>降耦,方便开发。
spring是一个大工厂,可以将所有对象创建和依赖关系的维护,交给spring管理。
<2>AOP编程的支持
Spring提供面向切面编程,可以方便的实现对程序进行权限拦截、运行监控等功能。
<3>声明式事务的支持
只需要通过配置就可以完成对事务的管理,而无需手动编程。
<4>方便程序的测试
Spring对Junit4支持,可以通过注解方便的测试Spring程序。
<5>方便整合其他优秀框架
Spring不排斥各种优秀的开源框架,其内部提供了对各种优秀框架(如:Struts、Hibernate、MyBatis、Quartz等)的直接支持。
<6>降低JavaEE API的使用难度
Spring 对JavaEE开发中非常难用的一些API(JDBC、JavaMail、远程调用等),都提供了封装,使这些API应用难度大大降低。
4. spring主要版本和区别?
spring主要版本分为spring3.x版本和spring4.x版本。两个版本最大的不同是在于如果你使用spring4.x版本需要整合 hiberbate4。
5. spring的核心包
下载spring框架后,解压后为:
文件名称 | 用途 |
---|---|
docs | spring框架API和规范 |
libs | spring开发的jar包 |
schema | XML的约束文件 |
其中要导入的jar包中,有4个核心jar包:
spring-beans-3.2.0.RELEASE.jar
spring-context-3.2.0.RELEASE.jar
spring-core-3.2.0.RELEASE.jar
spring-expression-3.2.0.RELEASE.jar
开发中的日志记录包有:
com.springsource.org.apache.commons.logging-1.1.1.jar
com.springsource.org.apache.log4j-1.2.15.jar
6. spring的配置文件
在classpath下,相对MyEclipse开发就是src下,创建一个applicationContext.xml的文件,不一定要起这个名,但是这是它默认的名字。
手动引入约束
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
</beans>
然后在标签中可以配置标签。
<!-- 通过一个<bean>标签设置类的信息,通过id属性为类起个标识。 -->
<bean id="userService" class="com.spring3.HelloServiceImpl">
<!-- 使用<property>标签来注入属性 -->
<property name="info" value="亡者农药"></property>
</bean>
7. spring框架加载配置文件
有两种加载方法:
//第一种加载方法,加载的是classpath下的配置文件。
ApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml");
//第二种加载方法,加载的是磁盘路径下的文件。
ApplicationContext applicationContext = new FileSystemXmlApplicationContext("applicationContext.xml");
//得到配置文件后,就能拿到想要的对象。例如:
HelloService helloService = (HelloService) applicationContext.getBean("userService");
//在这当中getBean中的参数为你在配置文件下,这个对象的id,一个标识。