一、Spring简介
Spring是一个为简化企业级开发而生的开源框架。
Spring是一个IOC(DI)和AOP容器框架。
IOC (Inversion of Control) : 反转控制
DI (Dependency Injection) : 依赖注入 DI是IOC的一种具体实现
AOP(Aspect-Oriented Programming) : 面向切面编程
使用Spring开发可以将Bean对象,Dao组件对象,Service组件对象等交给Spring容器来管理,这样使得很多复杂的代码在Spring中开发却变得非常的优雅和简洁,有效的降低代码的耦合度,极大的方便项目的后期维护、升级和扩展。
优良特性:①非侵入式:基于Spring开发的应用中的对象可以不依赖于Spring的API。
②控制反转:指的是将对象的创建权交给Spring去创建。使用Spring之前,对象的创建都是由我们自己在代码中new创建。而使用Spring之后。对象的创建都是由给了Spring框架。
③依赖注入:是指依赖的对象不需要手动调用setXXX方法去设置,而是通过配置赋值。
④面向切面编程:在不修改源代码的基础上进行功能扩展。
⑤容器:Spring是一个容器,因为它包含并且管理应用对象的生命周期。
⑥组件化:Spring实现了使用简单的组件配置组合成一个复杂的应用。在 Spring 中可以使用XML和Java注解组合这些对象。
⑦一站式:Spring实现了使用简单的组件配置组合成一个复杂的应用。在 Spring 中可以使用XML和Java注解组合这些对象。
2、Spring框架分为五大模块:
(1)Core container:核心容器
Bean提供BeanFactory,它是一个工厂模式的复杂实现
Core提供了框架的基本组成部分,包括IOC和DI功能
Context建立在由核心和bean模块提供的基础上,它是访问定义和配置的任何对象的媒介。ApplicationContext接口是上下文模块的重点
SpEL在运行时提供了查询和操作一个对象的强大的Spring
(2)AOP&Aspects:提供了面向切面编程的实现
(3)DataAccess/Integration:提供了对数据访问、集成的功能
(4)Web:提供了面向Web应用程序的集成功能
(5)Test:提供了对JUnit或TestNG框架的测试功能
3、HelloSpring
(1) 创建Java工程,并导入jar包
org.springframework spring-context5.3.1 junit junit4.12 test
(2)新建Student【测试类】
(3)创建Spring核心配置文件【applicationContext.xml或beans.xml】
位置:resources目录下
将Student类装配到Spring容器中
(4)创建Spring容器对象【ClassPathXmlApplicationContext】
ApplicationContext context =
new ClassPathXmlApplicationContext("applicationContext.xml");
(5) 通过容器获取Student对象
Student zzq = context.getBean("zzq", Student.class);
System.out.println("zzq = " + zzq);
4、getBean三种方式
①getBean(String id):从spring容器中,通过id获取对象
不足:默认获取对象类型是Object,需要强转,比较繁琐
②getBean(Class clazz):从spring容器中,通过Class获取对象
不足:当容器中有多个相同Class对象时,会报如下错误:
expected single matching bean but found 2: ltq,zzq
③getBean(String id,Class clazz):从spring容器中,通过id和Class获取对象
建议使用
5、Spring依赖注入三种方式
①set注入
②构造器注入
③p名称空间注入 xmlns:p="http://www.springframework.org/schema/p"
本质还是set注入
(2)特殊字符 使用CDATA区 < ! [CDATA[ ] ] >
(3)外部已声明bean ref
(4)级联属性赋值
如更改级联属性值时,管理bean中属性也同时被更改【级联对象与原对象,是同一个对象】
(5)内部bean
8、Spring装配第三方bean
①导入jar包
com.alibaba druid1.1.10 mysql mysql-connector-java5.1.37
②编写db.properties文件
#key=value jdbc.username=root jdbc.password=root jdbc.url=jdbc:mysql://localhost:3306/test jdbc.driverClassName=com.mysql.jdbc.Driver jdbc.initialSize=5 jdbc.maxActive=10
③编写applicationContext.xml文件
-
加载属性文件【db.properties】
-
装配DruidDataSource数据源



