栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Spring框架

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Spring框架

Spring框架

1.Spring框架都概念2.Spring框架的基本构造3.Spring的helloworld

3.3.1 创建maven项目3.3.2 引入Spring框架3.3.3 创建实体类3.3.4配置Spring容器3.3.5 测试 4.Spring容器(bean)配置文件

4.1 Spring bean的加载流程

4.1.1 配置bean4.1.2 容器启动 (加载工厂)4.1.3 读取配置信息4.1.4根据注册表实例化bean对象4.1.5 放入容器(工厂)的缓存中 4.2 bean的配置

4.2.1 bean对象默认是单例的4.2.2 bean标签4.2.3使用注解配置 4.3 Spring的IoC容器

4.3.1 IoC的概念4.3.2 DI是什么

4.3.2.1set注入(推荐)4.3.2.2构造方法注入4.3.2.3接口注入(少)

1.Spring框架都概念

Spring框架是一个开放源代码的J2EE应用程序框架,由Rod Johnson发起,是针对bean的生命周期进行管理的轻量级容器(lightweight container)。
Spring解决了开发者在J2EE开发中遇到的许多常见的问题,提供了功能强大IOC、AOP及Web MVC等功能。
Spring可以单独应用于构筑应用程序,也可以和Struts、Webwork、Tapestry等众多Web框架组合使用,并且可以与 Swing等桌面应用程序AP组合。因此, Spring不仅仅能应用于JEE应用程序之中,也可以应用于桌面应用程序以及小应用程序之中。

2.Spring框架的基本构造

3.Spring的helloworld 3.3.1 创建maven项目

3.3.2 引入Spring框架

  4.0.0
  com.dyit.spring
  spring-hello
  0.0.1-SNAPSHOT
  
  
  	
    org.springframework
    spring-context
    5.3.15



  	
  		junit
  		junit
  		4.12
  	
  

3.3.3 创建实体类
public class Car {
	private Integer id;
	private String brand;
	private String color;
	private Double price;
	public Integer getId() {
		return id;
	}
	public void setId(Integer id) {
		this.id = id;
	}
	public String getBrand() {
		return brand;
	}
	public void setBrand(String brand) {
		this.brand = brand;
	}
	public String getColor() {
		return color;
	}
	public void setColor(String color) {
		this.color = color;
	}
	public Double getPrice() {
		return price;
	}
	public void setPrice(Double price) {
		this.price = price;
	}
	@Override
	public String toString() {
		return "Car [id=" + id + ", brand=" + brand + ", color=" + color + ", price=" + price + "]";
	}
	public Car(Integer id, String brand, String color, Double price) {
		super();
		this.id = id;
		this.brand = brand;
		this.color = color;
		this.price = price;
	}
	public Car() {
		
	}
	
	

}

3.3.4配置Spring容器


	
		
		
		
		
	
	

3.3.5 测试
@Test
	public void testSpring() {
		//获取容器
		ApplicationContext act = 
				new FileSystemXmlApplicationContext("classpath:spring/applicationContext.xml");
		Car car = act.getBean(Car.class,"car1");
		System.out.println(car);
	}
4.Spring容器(bean)配置文件 4.1 Spring bean的加载流程

Bean的配置信息定义了bean的实现和依赖关系,SPring容器根据各种形式的bean配置信息在容器内部建立Bean定义注册表,然后根据注册表加载,实例化bean,并建立bean和bean的依赖关系,最后将这些准备就绪的bean放入bean缓存池中,以供外层程序进行调用。

和mybatis的缓存相类似。、

4.1.1 配置bean
	
		
		
		
		
	
	

4.1.2 容器启动 (加载工厂)
//获取容器
		ApplicationContext act = 
				new FileSystemXmlApplicationContext("classpath:spring/applicationContext.xml");
4.1.3 读取配置信息

在容器中定义了一个bean的注册表:将bean信息注册到容器中

4.1.4根据注册表实例化bean对象 4.1.5 放入容器(工厂)的缓存中
Car car = act.getBean(Car.class,"car1");
4.2 bean的配置 4.2.1 bean对象默认是单例的 4.2.2 bean标签

id/name:在容器中的唯一名称(不能重复)class:类的全名—包名+类名init-method:在对象创建之后第一个调用的方法


destory-method:在容器销毁对象时调用的方法

 

ref:引用容器中bean的id/name(可以理解为直接引用对象)

 
		
		
		
		
	
	
	
		
		
	

		 
		
			
				
				
				
			
		
		
	
	
	
	
		
		
			
				
				
				
				
			
		
	
	
	
		
		
		
	
4.2.3使用注解配置

@Controller
@Service
@Repository
@Component


扫描包下的类是否有@Controller, @Service @Repository @Component,将注解的类注册,实例化放入缓存





	


public interface IBookService {
	
	void deleteBook(int id);

}

@Service
public class BookServiceImpl implements IBookService {

	@Override
	public void deleteBook(int id) {
		System.out.println("删除"+id+"成功");
		
	}
}

@Controller
public class BookController {
    
    //@Autowired :自动查找容器中是否有IBookSerivce这种类型的对象,如果有则注入对象
	@Autowired
	private IBookService ibs; //ibs = new 。。。。
	
	public void del() {
	
		ibs.deleteBook(1);
	}

}
4.3 Spring的IoC容器

Spring容器是Spring框架的核心。容器将创建对象,把他们连接在一起,配置他们,并管理他们的整个生命周期,从创建到销毁。
IoC容器是具有依赖注入功能的容器,它可以创建对象,IoC容器负责实例化、定位、配置应用程序中的对象及建立对象间的依赖。通常new一个实例,控制权由程序员控制,而控制反转是指new实例工作不由程序员来做,而是交给Spring容器来做.

Spring IoC容器---->工厂模式
POJO:对象
配置(xml,注解)–>解析–>POJO–>IoC–>从IoC获取对象

4.3.1 IoC的概念

IoC:Inverse Of Control 控制反转

通俗来讲:对象由IoC容器构造,当我们需要时从IoC获取对象

4.3.2 DI是什么

实现过程中很复杂,很难实现。有些概念没有交代的特别清楚
如:控制权是什么?如何反转?反转什么?
DI:依赖注入

4.3.2.1set注入(推荐)


	
	
	

4.3.2.2构造方法注入
public class Author {
	
	private Integer id;
	private String name;
	private String address;
	
	public Author() {
	}
	
	public Author(String name, String address) {
		this.name = name;
		this.address = address;
	}

	@Override
	public String toString() {
		return "Author [id=" + id + ", name=" + name + ", address=" + address + "]";
	}

}


  
  

4.3.2.3接口注入(少)
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/749426.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号