1 spring 是开元的轻量级框架
2 spring核心主要两部分
(1)aop:面向切面编程,扩张功能不是修改源代码实现
(2)ioc:控制反转,比如有一个类,在类里面有方法(不是静态方法),调用类里面的方法,创建类的对象,使用对象调用方法,创建类对象的过程,需要new出来对象。
把对象的创建不是通过new方式实现,而是交给spring配置创建类对象
3 spring是一站式框架
(1)spring在javaee三层结构中,每一层都提供不同的解决技术。
web层:springMVC
service层:spring的ioc
dao层:spring的jdbcTemplate
4 spring版本
(1)hibernate5.x
(2)spring4.x
Spring的ioc操作
1 把对象的创建交给spring进行管理
2 ioc操作两部分:
(1)ioc的配置文件方式
(2)ioc的注解方式
IOC底层原理
1 ioc底层原理使用技术
(1)xml配置文件
(2)dom4j解析xml
(3)工厂设计模式
(4)反射
2 画图分析 ioc实现原理
ioc原理
IOC入门案例
第一步 导入jar包
(1)解压资料zip文件
Jar特点:都有三个jar包,基本架包、文档、源架包
(2)做spring最基本功能时候,导入四个核心jar包就可以了。
(3)导入支持日志输出的jar包
第二步 创建类,在类里面创建方法
package cn.itcast.ioc; public class User { public void add() { System.out.println("add>>>>>"); } public static void main(String[] args) { //原始做法 User user=new User(); user.add(); } }
第三步 创建spring配置文件,配置创建类
(1)spring核心配置文件名称和位置不是固定的
-建议放到src下面,名称没有要求,官方建议applicationContext.xml
(2)引入schema约束
\spring-framework-4.2.4.RELEASE\docs\spring-framework-reference\htmlxsd-configuration.html
<?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>(3)配置对象创建
第四步 写代码测试对象创建
(1)这段代码在测试中使用
@Test public void testUser() { //1加载spring配置文件,根据创建对象 ApplicationContext context=new ClassPathXmlApplicationContext("bean1.xml"); //2得到配置创建的对象 User user=(User) context.getBean("user"); System.out.println(user); user.add(); }
配置文件没有提示问题
1 spring引入schema约束,把约束文件引入到eclipse中,
(1)复制约束路径
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
Spring的bean管理(xml方式)
Bean实例化的方式
1 在spring里面通过配置文件创建对象
2 bean实例化三种方式实现
第一种 使用类的无参数构造创建(常用)
<!-- ioc入门 --> <bean id="user" class="cn.itcast.ioc.User"></bean>类里面没有无参数的构造,出现异常。
第二种 使用静态工厂创建
(1)创建静态的方法,返回类对象。
<!-- 使用静态工厂创建对象 --> <bean id="bean2" class="cn.itcast.bean.Bean2Factory" factory-method="getBean2"></bean>
@Test public void testUser() { //1加载spring配置文件,根据创建对象 ApplicationContext context=new ClassPathXmlApplicationContext("bean1.xml"); //2得到配置创建的对象 Bean2 bean2=(Bean2) context.getBean("bean2"); System.out.println(bean2); }
package cn.itcast.bean; public class Bean2Factory { //静态的方法,返回Bean2对象 public static Bean2 getBean2() { return new Bean2(); } }
第三种 使用实例工厂创建
(1)创建不是静态的方法,返回类对象。
<!-- 使用实例工厂创建对象 --> <!-- 创建工厂对象 --> <bean id="bean3Factory" class="cn.itcast.bean.Bean3Factory"></bean> <bean id="bean3" class="bean3Factory" factory-method="getBean3"></bean>