Spring概念
- spring是开源的轻量级框架
- spring核心主要两部分
- aop:面向切面变成,扩展功能不是修改源代码实现
- ioc:控制反转,比如有一个类,在类里面有方法(不是静态方法),调用类里面的方法,创建类的对象,使用对象的方法,创建类对象的过程,需要new出来对象
把对象的创建不是通过new方式实现,而是交给spring配置创建类对象
- spring是一站式框架
- spring在javaee三层结构中,每一层都提供不同的解决技术
web层:springMVC
service层:spring的ioc
dao层:spring的jdbcTemplate
- spring在javaee三层结构中,每一层都提供不同的解决技术
- spring版本
- hibernate5.x
- spring4.x
Spring的ioc操作
- 把对象的创建交给spring进行管理
- ioc操作两部分:
- ioc的配置文件方式
- ioc的注解方式
IOC底层原理
- ico底层原理使用技术
- xml配置文件
- dom4j解析xml
- 工厂设计模式
- 反射
IOC入门案例
- 导入jar包
- 做spring最近本功能时候,导入四个核心的jar就可以了
Core Container:Beans、Core、Context、SpEL - 导入支持日志输出的jar包
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5po190g8-1592818017429)(https://raw.githubusercontent.com/GGMyfriends/IMG/master/TIM%E5%9B%BE%E7%89%8720180206112221.png)]
- 做spring最近本功能时候,导入四个核心的jar就可以了
- 创建类,在类里面创建方法
public class User {
public void add() {
System.out.println("user");
}
public static void main(String[] args) {
//原始做法
User user = new User();
user.add();
}
}
- 创建spring配置文件,配置创建类
spring核心配置文件名称和位置不是固定的
建议放到src下面,官方建议applicationContext.xml
引入schema约束
<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">
配置对象创建
<bean id="user" class="User.java"></bean>
- 写代码测试对象创建
//1 加载spring配置文件,根据配置创建对象
ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
//2 得到配置创建的对象
User user = (User)context.getBean("user");
System.out.println(user);
user.add();
配置文件没有提示问题
- 辅助约束路径
preferences-XML Catalog
Location——E:\workspace_eclipse\API\jar\spring\spring-framework-4.2.4.RELEASE\schema\beans
key——http://www.springframework.org/schema/beans/spring-beans.xsd
Spring的bean管理(xml方式)
Bean实例化方式
- 在spring里面通过配置文件创建对象
- bean实例化三种方式实现
使用类的无参构造常见
<bean id="user" class="ioc.User"></bean>
使用静态工厂创建
创建静态的方法,返回类对象
//静态的方法,返回Bean2对象
public static Bean2 getBean2(){
return new Bean2();
}
<bean id="bean2"