spring概述
- spring是一个轻量级的框架
- spring核心主要包括两部分
- aop:面向切面编程,扩展功能不修改源代码实现
- ioc:控制反转
- 常规的使用一个类中的方法需要创建这个类的对象,然后调用对象的方法
- 但是使用spring,对象的创建不需要通过new的方式,而是交给spring配置创建类对象
- spring是一站式框架
- spring在Javaee三层结构中,每一层都提供了不同的解决技术
- web层:springMVC
- service层:spring的ioc
- dao层:spring的jdbcTemplate
- spring 版本
- spring4.x
ioc底层使用的技术
- xml配置文件
- dom4j解析xml
- 工厂模式
- 反射
ioc底层原理
- 如果在一个类中直接创建另一个类的对象,这样,耦合度很高(关联性很高)
- 使用工厂模式可以将创建对象放到第三个类中,一定程度上解决了这种问题,但是工厂类和Servlet耦合
- 但是上面工厂模式内部还是通过new的形式创建对象,返回出去,这样工厂类和第一个类之间耦合度比较高,为了解决这个问题,工厂类内部可以通过==xml配置文件+dom4j解析+反射==创建对象,这样后期只需要修改配置文件就可以
ioc 案例
- 第一步:搭建开发环境,导入jar包
- springjar包中提供了jar包,文档,源码
- 根据spring的运行需要导入的图片,如果只需要基本的功能只需要导入核心的jar包就好了
- spring框架本身没有提供打印日志的jar包,如果想要打印日志,还需要导入commons-logging和log4j
- 第二步:创建类,在类里面定义一个方法
第三步:创建spring配置文件,配置创建类
- ==spring核心配置文件名称和位置不是固定的==
- 但是建议放到src下,文件名官方建议:applicationContext.xml
- 引入schema约束
- 找到docs目录
- docs下的
- heml文件夹下的最后一个文件
- 打开这个文件
配置文件:
<?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"> <!-- ioc入门 class属性:类的全路径 id属性:可以自定义,但是建议使用类名,首字母小写 --> <bean id="user" class="com.td.User"></bean> </beans>
测试是否可以成功创建 对象
- 代码:
- 结果:
- ==spring核心配置文件名称和位置不是固定的==