一、Spring 介绍
1.1、什么是spring
![](http://bbs.itheima.com/data/attachment/forum/201701/20/105702m1414jjjptv4xx81.png.thumb.jpg)
1.2、spring由来
1.3、spring核心
1.4、spring优点
l 方便解耦,简化开发 (易扩展,易维护)
• Spring就是一个大工厂,可以将所有对象创建和依赖关系维护,交给Spring管理
l AOP编程的支持
• Spring提供面向切面编程,可以方便的实现对程序进行权限拦截、运行监控等功能
l 声明式事务的支持
• 只需要通过配置就可以完成对事务的管理,而无需手动编程
l 方便程序的测试
• Spring对Junit4支持,可以通过注解方便的测试Spring程序
l 方便集成各种优秀框架
• Spring不排斥各种优秀的开源框架,其内部提供了对各种优秀框架(如:Struts、Hibernate、MyBatis、Quartz等)的直接支持
l 降低JavaEE API的使用难度
• Spring 对JavaEE开发中非常难用的一些API(JDBC、JavaMail、远程调用等),都提供了封装,使这些API应用难度大大降低
|
1.5、spring体系结构
<ignore_js_op>
二、环境搭建(技术开发环境)2.1、获取 Spring framework jar包 1、spring官网下载
![](https://images2017.cnblogs.com/blog/1246492/201801/1246492-20180126111340412-1555897580.png)
2.spring包的核心包
![](https://images2017.cnblogs.com/blog/1246492/201801/1246492-20180126114216928-588422801.png)
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' defined in ServletContext resource [/WEB-INF/classes/applicationContext.xml]: Invocation of init method failed; nested exception is java.lang.NoSuchMethodError: org.objectweb.asm.ClassVisitor.visit(IILjava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;)
Caused by:
java.lang.NoSuchMethodError: org.objectweb.asm.ClassVisitor.visit(IILjava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;)
|
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory
|
3. 配置 XML
1. 新建立一个 xml.名字任意,如 applicationContext.xml,或者 text.xml 都可以 2. 添加 xml 头定义
<?xml version="1.0" encoding="utf-8"?>
<beans xmlns=http://www.springframework.org/schema/beans ①
xsi:schemaLocation="http://www.springframework.org/schema/beans ②http://www.springframework.org/schema/beans/spring-beans-3.2.xsd ③
">
<bean name="" class=""> </bean>
</beans>
|
![](http://bbs.itheima.com/data/attachment/forum/201701/20/110213fb7mc8mj9drscew8.png.thumb.jpg)
4. 搭建环境简单测试
4.1 通过 xml 配置
<?xml version="1.0" encoding="UTF-8"?> |
package cn.bdqn.test; import org.junit.Test; import cn.bdqn.bean.User; public class UserTest { |
三、Spring 概念
1. 思想
1.1 IOC思想
1.2 DI 思想
2. applicationContext&BeanFactory 对象
2.1 BeanFactory 最顶层的接口
spring原始接口.针对原始接口的实现类功能较为单一
BeanFactory接口实现类的容器.特点是每次在获得对象时才会创建对象
2.2 ApplicationContext
每次容器启动时就会创建容器中配置的所有对象.并提供更多功能
丛类路径下加载配置文件:ClassPathXmlApplicationContext (建议使用)
从硬盘绝对路径下加载配置文件:FileSystemXmlApplicationContext("d:/xxx/yyy/xxx")
结论:web开发中,使用applicationContext. 在资源匮乏的环境可以使用BeanFactory.
四、Spring 配置详解
1.bean 元素
2. spring创建对象的方式
2.1 空参构造方式
2.2 .静态工厂(了解)
2.3 实例工厂(了解)
3. scope属性
4. 生命周期属性
5.spring的分模块配置 ---import
五、Spring 属性注入
1. set 方式注入 (最重要)
2. 构造函数注入
3. p名称空间注入(了解)
导入p命名空间
4. spel 注入(了解)
六、复杂类型注入
1. 数组
2. list
3. map
4. properties