【后端Java】Spring框架体系

【后端Java】Spring框架体系,第1张

【后端Java】Spring框架体系 Spring5框架 一、Spring框架概述 1. Spring框架简介
  • Spring 是轻量级的开源的 JavaEE 框架
  • Spring 可以解决企业应用开发的复杂性
  • Spring 有两个核心部分:IOC 和 Aop
    (1)IOC:控制反转,把创建对象过程交给 Spring 进行管理
    (2)Aop:面向切面,不修改源代码进行功能增强
  • Spring 特点
    • 方便解耦,简化开发
    • Aop 编程支持
    • 方便程序测试
    • 方便和其他框架进行整合
    • 方便进行事务 *** 作
    • 降低 API 开发难度
二、IOC概念和原理 1. IOC(Inversion Of Control)的概念
  • 控制反转,把对象创建和对象之间的调用过程,交给 Spring 进行管理
  • 使用 IOC 目的:为了耦合度降低
2. IOC底层原理
  • xml解析、工厂模式、反射
3. IOC接口
  • IOC 思想基于 IOC 容器完成,IOC 容器底层就是对象工厂
  • Spring 提供 IOC 容器实现两种方式:(两个接口)
    • BeanFactory:IOC 容器基本实现,是 Spring 内部的使用接口,不提供开发人员进行使用
      • 加载配置文件时候不会创建对象,在获取对象(使用)才去创建对象
    • ApplicationContext:BeanFactory 接口的子接口,提供更多更强大的功能,一般由开发人员进行使用
      • 加载配置文件时候就会把在配置文件对象进行创建
  • ApplicationContext 接口有实现类
4. IOC *** 作 Bean 管理
  • 什么是 Bean 管理
    • Bean 管理指的是两个 *** 作
      • Spring 创建对象
      • Spirng 注入属性
  • Bean 管理 *** 作有两种方式
    • 基于 xml 配置文件方式实现
    • 基于注解方式实现
5. IOC *** 作 Bean 管理(基于xml方式)
  • 基于 xml 方式创建对象
    • 在 spring 配置文件中,使用 bean 标签,标签里面添加对应属性,就可以实现对象创建
    • 在 bean 标签有很多属性,介绍常用的属性
      • id 属性:唯一标识
      • class 属性:类全路径(包类路径)
    • 创建对象时候,默认也是执行无参数构造方法完成对象创建
  • 基于 xml 方式注入属性
    • DI:依赖注入,就是注入属性

    • 第一种注入方式:使用set方法进行注入

      • 创建类,定义属性和对应的set方法

        public class Book {
        	// 创建属性
        	private String bname;
        	private String bauthor;
        	// 创建属性对应的set方法
        	public void setBname(String bname) {
        		this.bname = bname;
        	}
        	public void setBauthor(String bauthor) {
        		this.bauthor = bauthor;
        	}
        }
        
      • 在Spring配置文件配置对象创建,配置属性注入(set方法注入属性)

        
        	
        	
        	
        
        
    • 第二种注入方式:使用有参构造进行注入

      • 创建类,定义属性,创建属性对应有参数构造方法

        public class Book {
        	// 创建属性
        	private String bname;
        	private String bauthor;
        	// 有参构造
        	public Book(String bname, String bauthor) {
        		this.bname = bname;
        		this.bauthor = bauthor;
        	}
        }
        
      • 在Spring配置文件中进行配置(有参构造注入属性)

        
        	
        	
        
        
6. IOC *** 作 Bean 管理(xml 注入其他类型属性)
  • 字面量

    • null 值

       
       
      	
      
      
    • 属性值包含特殊符号

       
      	>]]>
      
      
  • 注入属性 - 外部 bean

    • 创建两个类 service 类和 dao 类
    • 在 service 调用 dao 里面的方法
    • 在 spring 配置文件中进行配置
public class UserService {
	//创建 UserDao 类型属性,生成 set 方法
	private UserDao userDao;
	public void setUserDao(UserDao userDao) {
		this.userDao = userDao;
	}
public void add() {
	System.out.println("service add...............");
	userDao.update();
	} 
}
 

	
	
 

  • 注入属性 - 内部 bean
    • 一对多关系:部门和员工
      • 一个部门有多个员工,一个员工属于一个部门
      • 部门是一,员工是多
    • 在实体类之间表示一对多关系,员工表示所属部门,使用对象类型属性进行表示
// 部门类
public class Dept {
	private String dname;
	public void setDname(String dname) {
		this.dname = dname;
	} 
}
// 员工类
public class Emp {
	private String ename;
	private String gender;
	// 员工属于某一个部门,使用对象形式表示
	private Dept dept;
	public void setDept(Dept dept) {
		this.dept = dept;
	}
	public void setEname(String ename) {
		this.ename = ename;
	}
	public void setGender(String gender) {
		this.gender = gender;
	} 
}
 

	
	 
	
	 
	 
		 
			
		
	

  • 注入属性 - 级联赋值
    • 第一种方法
 

	 
	 
	
	 
	
 

	

  • 第二种方法

	 
	 
	
	 
	
	
 

	

7. IOC *** 作 Bean 管理(xml 注入集合属性)
  • 注入数组类型属性
  • 注入 List 集合类型属性
  • 注入 Map 集合类型属性
public class Stu {
	//1 数组类型属性
	private String[] courses;
	//2 list 集合类型属性
	private List list;
	//3 map 集合类型属性
	private Map maps;
	//4 set 集合类型属性
	private Set sets;

	// 学生所学多门课程
	pricate List courseList;
	public void setCourseList(List courseList) {
		this.courseList = courseList;
	}
	public void setSets(Set sets) {
		this.sets = sets;
	}
	public void setCourses(String[] courses) {
		this.courses = courses;
	}
	public void setList(List list) {
		this.list = list;
	}
	public void setMaps(Map maps) {
		this.maps = maps;
	}
}
 

	 
	 
		 
			java 课程 
			数据库课程
		
	
	 
	 
		
			张三 
			小三
		
	
	 
	 
		
			 
			
		
	
	 
	 
		
			MySQL 
			Redis
		
	

  • 在集合里面设置对象类型值
 
 
	
 
 
	

 
 
	
		 
		
	

  • 把集合注入部分提取出来




 

	西游记 
	三国演义 
	红楼梦

 
 
	

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5563181.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-14
下一篇 2022-12-14

发表评论

登录后才能评论

评论列表(0条)

保存