Spring总结————spring核心Core

一、spring的概念

spring是一个开源的,轻量级控制反转和面向切面的容器框架,解决企业应用开发的复杂性,降低耦合,更易于测试。

spring春天。如果写一个小的项目,我们可以在项目中想创建一个对象就创建i个对象,但对于大型项目来说,可能需要依赖几百个类,类与类关系也非常复杂,我们就不能把创建对象和维护对象之间的关系放到项目中,可以采用生活中分工合作的方式,把对象的创建和维护关系给剥离出来,找一个工厂类的东西去干这些事,这样项目如果需要对象了,就从工厂类中去取。

spring就是为了让我们以后能够做大的项目准备的。spring核心的功能就是一个工厂模式,spring相当于为你的项目专门成立一个工厂,这个工厂负责创建对象,委会对象之间的关系,以前是直接new,现在从spring的工厂里面获取。

二、spring的bean的常用属性

scope

scope用来配置bean对象是否是单例测试。单例模式是java的23种设计模式之一,指在这个项目运行过程中一个类的对象只会实例化一次。一般,工厂类的对象都是单例模式。非单例模式叫多例模式或者原型模式。

spring工厂中的对象默认都是单例模式,如果我们想把对象配置成多例模式,可以配置bean的scope属性,scope常用的两个取值:

singleon默认值 单例模式

prototype 原型模式 多例模式

单例模式下,对象是在工厂初始化的时候创建的。多例模式是在工厂初始化之后,获取对象的时候创建的。

autowire

autowire用来配置spring对象属性的默认的装配方式。有三个取值

no:默认值  不启用自动装配

byType:根据类型自动装配

byName:根据名称自动装配,一般bean的name如果不声明  默认值取的就是id

三、spring的bean的 属性注入的两种方式

设值注入

设值注入要求:

要求属性在实体类中必须有getter和setter方法,然后在spring的工厂中就可以使用property标签进行设值注入。

构造注入

通过类的构造方法的方式注入

第一步,在要bean对应的class中创建有参的构造

第二步,在spring的工厂中配置

注:设值注入的优缺点:使用起来比较直观,以后项目中大多数情况都采用设值注入。必须给属性是生成getter和setter

构造注入的优缺点:不用给属性生成getter和setter方法 了,但是看起来不太直观。

四、spring的注解配置

使用bean的方式配置spring比较麻烦,开发中经常使用注解的方式配置spring

 1 package com.aaa.spring.entity;
 2 import org.springframework.beans.factory.annotation.Autowirimport org.springframework.stereotype.Component;
 3 import java.security.spec.DSAGenParameterSpec;
 4 /**
 5 * 组装E470笔记本
 6 */
 7 @Component
 8 public class E470 {
 9 //这里需要依赖接口
10 //Autowired默认按类型自动装配
11 @Autowired
12 private Display display;
13 @Autowired
14 private Cpu cpu;
15 /**
16 * 笔记本工作的方法
17 */
18 public void work(){
19 //cpu进行计算
20 cpu.calc();
21 //显示器显示
22 display.display();
23 }public Display getDisplay() {
24 return display;
25 }
26 public void setDisplay(Display display) {
27 this.display = display;
28 }
29 public Cpu getCpu() {
30 return cpu;
31 }
32 public void setCpu(Cpu cpu) {
33 this.cpu = cpu;
34 }
35 }

@Component注解

同我们使用bean的方式创建对象,加了@Component注解的类会在spring的工厂中创建该对象,该对象的id为@Component注解的类的名称,但是首字母是看第二个字母的,若第二个字母是小写,首字母小写,第二个字母大写,首字母就为大写。

@Autowird自动按类型装配

注:需要在配置文件中扫描配置@Component类所在的包

总结:

1、spring是一个容器类的框架  两个作用:1、创建对象   2、维护对象之间的关系

2、spring的基本配置

3、常用的bean的属性 scope singleton  prototype

4、bean注入的两种方式  设值注入  属性必须有getter和setter   构造注入  必须要有有参构造

5、spring的注解配置

面试题:

1、你怎么理解spring的di和ioc

di依赖注入描述对象之间的依赖关系  在spring工厂中设值注入或者构造注入维护关系

ioc  控制反转  描述对象创建方式的改变   原来创建对象在程序中,用来spring之后在工厂中创建独享

2、spring中@Autowired和@Resource的区别是什么

@Autowired按类型自动装配

@Resource先按类型自动装配  再按属性名称自动装配

原文地址:https://www.cnblogs.com/yanpingping/p/10896944.html

时间: 2024-10-07 19:10:21

Spring总结————spring核心Core的相关文章

Spring系列之核心容器

[回顾] 在上篇博客中,我们清楚了Spring的核心IOC,博客的结尾,提出了关于容器的问题.在Spring框架中,容器扮演者重要的角色.容器是什么?Java容器?Spring容器?这几个词,大家都很熟悉,但真正知道么?本篇博客的重点分析Spring中的核心容器.容器和Java容器不做详细介绍. [容器] 容器,从字面角度很容易理解,就是用来贮藏东西的.从计算机的角度,可粗略地分为Web容器和编程容器. Web容器是应用服务器中位于组件和平台之间的接口集合.如WebLogic.Tomcat等.

详解Spring框架的核心思想之IOC

微信号:GitShare微信公众号:爱折腾的稻草如有问题或建议,请在公众号留言[1] 前续 为帮助广大SpringBoot用户达到"知其然,更需知其所以然"的境界,作者将通过SpringBoot系列文章全方位对SpringBoot2.0.0.RELEASE版本深入分解剖析,让您深刻的理解其内部工作原理. No.1 Spring是什么 为了让更多的朋友了解Spring,首先科普一下Spring!有兴趣的朋友可以去Spring官网逛逛,地址是:https://spring.io/ The

一头扎进Spring之---------Spring核心容器

[回顾] 在上篇博客中,我们清楚了Spring的核心IOC,博客的结尾,提出了关于容器的问题.在Spring框架中,容器扮演者重要的角色.容器是什么?Java容器?Spring容器?这几个词,大家都很熟悉,但真正知道么?本篇博客的重点分析Spring中的核心容器.容器和Java容器不做详细介绍. [容器] 容器,从字面角度很容易理解,就是用来贮藏东西的.从计算机的角度,可粗略地分为Web容器和编程容器. Web容器是应用服务器中位于组件和平台之间的接口集合.如WebLogic.Tomcat等.

最全面的改造Zuul网关为Spring Cloud Gateway(包含Zuul核心实现和Spring Cloud Gateway核心实现)

前言: 最近开发了Zuul网关的实现和Spring Cloud Gateway实现,对比Spring Cloud Gateway发现后者性能好支持场景也丰富.在高并发或者复杂的分布式下,后者限流和自定义拦截也很棒. 提示: 本文主要列出本人开发的Zuul网关核心代码以及Spring Cloud Gateway核心代码实现.因为本人技术有限,主要是参照了 Spring Cloud Gateway 如有不足之处还请见谅并留言指出. 1:为什么要做网关 (1)网关层对外部和内部进行了隔离,保障了后台服

Spring MVC的核心控制器DispatcherServlet的作用

关于Spring MVC的核心控制器DispatcherServlet的作用,以下说法错误的是(  )? 它负责接收HTTP请求 加载配置文件 实现业务操作 初始化上下应用对象ApplicationContext SpringMVC是Spring中的模块,它实现了mvc设计模式,首先用户发起请求,请求到达SpringMVC的前端控制器(DispatcherServlet),前端控制器根据用户的url请求处理器映射器查找匹配该url的handle,并返回一个执行链,前端控制器再请求处理器适配器调用

spring boot的核心

入口类和@SpringBootApplication Spring Boot的项目一般都会有*Application的入口类,入口类中会有main方法,这是一个标准的Java应用程序的入口方法. @SpringBootApplication注解是Spring Boot的核心注解,它其实是一个组合注解: 该注解主要组合了以下注解: @SpringBootConfiguration:这是Spring Boot项目的配置注解,这也是一个组合注解.在Spring Boot项目中推荐使用@ SpringB

spring中基础核心接口总结

spring中基础核心接口总结理解这几个接口,及其实现类就可以快速了解spring,具体的用法参考其他spring资料 1.BeanFactory最基础最核心的接口重要的实现类有:XmlBeanFactory,以及ApplicationContext接口下的类 2.Resource接口,可以通用地访问文件资源1)ClassPathResource:读取得形式为"classpath:ApplicationContext.xml"2)FileStstemResource:读取得形式为&qu

关于Spring Cloud的核心特性

SOA和微服务的区别 其实服务化架构已经可以解决大部分企业的需求了,那么我们为什么要研究微服务呢?先说说它们的区别: 微服务架构强调业务系统需要彻底的组件化和服务化,一个组件就是一个产品,可以独立对外提供服务 微服务不再强调传统SOA架构里面比较重的ESB企业服务总线 微服务强调每个微服务都有自己独立的运行空间,包括数据库资源. 微服务架构本身来源于互联网的思路,因此组件对外发布的服务强调了采用HTTP Rest API的方式来进行 微服务的切分粒度会更小 总结:微服务架构是 SOA 架构思想的

spring框架 AOP核心详解

AOP称为面向切面编程,在程序开发中主要用来解决一些系统层面上的问题,比如日志,事务,权限等待,Struts2的拦截器设计就是基于AOP的思想,是个比较经典的例子. 一 AOP的基本概念 (1)Aspect(切面):通常是一个类,里面可以定义切入点和通知 (2)JointPoint(连接点):程序执行过程中明确的点,一般是方法的调用 (3)Advice(通知):AOP在特定的切入点上执行的增强处理,有before,after,afterReturning,afterThrowing,around

获取spring的IOC核心容器,并根据id获取对象

public class Client { /** * 获取spring的IOC核心容器,并根据id获取对象 * ApplicationContext的三个常用实现类 * classPathXmlApplicationContext: 它可以加载路径下的配置文件,要求配置文件必须在类路径下.不在的话加载不了 * FileSystemXmlApplicationContext: 它可以加载磁盘任意路径下的配置文件件(必须有访问权限) * AnnotationConfigApplicationCon