【退役之重学Java】关于Spring

一、spring IOC

  1. tomcat 在启动的时候,直接会启动spring 容器
  2. spring ioc,spring 容器,根据xml配置,或者是你的注解,去实例化你的一些bean对象,然后根据xml配置或者注解,去对bean对象之间的引用,去进行依赖的注入
  3. 底层的核心技术,反射,他会通过反射的技术,直接根据你的类去自己构建对应的对象出来,用的就是反射技术
  4. 使用 spring ioc ,系统的类与类之间彻底解耦了。

二、spring AOP

  1. spring 核心框架里面,最关键的两个机制,就是ioc和aop,根据xml配置或者注解,去实例化我们所有的bean,管理bean之间的依赖注入,让类与类之间解耦,维护代码的时候可以更加轻松便利。
    spring 已经管理了我们代码里所有的这个类的对象实例,bean
  1. 事务,MySQL,数据库里都提供一个事务机制,我们如果开启一个事务,在这个事务里执行多条增删改的SQL语句,在这个过程中,如果任何一个sql语句失败了,都会导致这个事务的回滚,把其他sql做的数据更改都恢复过去
    在一个事务里的所有SQL,要么一起成功,要么一起失败,事务功能可以保证我们的数据的一致性,在业务逻辑组件里去加入这个事务
  1. 做一个切面,如何定义呢?MyserviceXXX 这种类,在这类的所有方法中,都织入一些代码,在所有这些方法刚开始运行的时候,都先去开启一个事务,在所有这些方法运行完毕之后,去根据是否抛出异常来判断一下,如果抛出异常,就回滚事务,如果没有异常,就提交事务
  1. 面相切面编程,aspect
  1. spring 在运行的时候,动态代理技术,aop的核心技术,就是动态代理

它会给你的那些类生成动态代理

controller 注入的是动态代理的对象实例

重复的代码

三、java bean

java bean 绝对不可能是线程安全的,spring bean 默认来说,singleton,都是线程不安全的,java web 系统,一般来说很少在spring bean 放一些实例变量,一般来说都是多个组件互相调用,最终去访问数据库。

四、事务机制

事务的实现原理,事务传播机制,如果说你加了一个@Transactional注解 此时spring就会使用aop思想,对你的这个方法在执行之前,先去开启事务,执行完毕之后,根据你方法是否报错,来决定回滚还是提交事务

五、spring boot 核心框架

spring 框架,mybatis , spring mvc ,去做一些开发,打包到线上的tomcat里去,tomcat启动了,他就会接收http请求,转发给spring mvc 框架,调用 controller->service->dao->mybatis (sql)

java web 开发的时候,在这里整合进来redis,elasticsearch,还有很多其他的一些东西,rabbitmq,等等,诸如此类

国外的spring开源社区,就发起了一个项目,spring boot,我们基于spring boot直接进行开发,里面还是使用spring+spring mvc + mybatis一些框架,我们可以一定程度上来简化我们之前的开发流程

spring 做很多配置,自己去定义一些bean,流程比较繁琐

spring boot 内嵌一个tomcat 直接让我们直接将写好的java web 系统启动起来

自动装配,比如说我们可以引入mybatis,其实主要引入一个starter依赖,他会一定程度上自动完成mybatis的一些配置和定义,不需要我们手工去做大量配置,一定程度上简化搭建工程的成本

引入一些mybatis 的jar 包,还有mybatis依赖的一些其他jar包,然后动手编写一些xml配置文件。然后定义一些bean,写一些sql,写一写dao。

spring boot 只要引入一个starter,他会自动给你引入需要的jar包,非常简单的,必须的配置,比如数据库的地址,几乎就不用你做太多的其他额外的配置了,他会自动帮你去进行一些配置,定义和生成对应的bean

生成的bean 自动注入到你的dao中,让你免去一些手工配置+定义bean的一些工作

spring boot + spring + spring mvc + mybatis + XXX 之类的技术去进行开发,后续很多配置和定义的一些繁琐的复杂的工作就免去了,自动装配一些的一些功能,自动给你把一些事情干完了,不需要你去做。

六、spring boot 关键原理

  1. spring bean 生命周期,从创建–> 使用–>销毁
  2. 你在系统里用xml或者注解,定义一大堆的bean
  3. 设置对象属性(依赖注入):他需要去看看,你的这个bean依赖了谁,把你依赖的bean也创建出来,给你进行一个注入,比如说通过构造函数
  4. 接着,spring会检测该对象是否实现了xxxAware 接口,并将相关的xxxAware实例注入给bean:
    a. 如果这个bean 已经实现了beanNameAware接口,会调用它实现的setBeanName(String beanId)方法,此处传递的就是spring 配置文件中的id值
    b. 如果这个bean已经实现了BeanFactoryAware接口,会调用它实现的setBeanFactory()方法,传递的是spring 工厂自身
    c. 如果这个Bean已经实现了ApplicationContextAware接口,spring 容器就会调用bean的setApplicationContext(ApplicationContext)方法,传入spring上下文
    d. beanPostProcessor:如果想对bean进行一些自定义的处理,那么可以然bean实现了beanPostProcessor接口,那将会调用postProcessorBeforeInitializtion(Object obj,String s)方法。
    e. InitializingBean与init-method:如果bean 在spring配置文件中配置了init-method 属性,则会自动调用其配置的初始化

七、spring中使用了哪些设计模式

工厂,单例,代理

  1. 工厂模式,spring ioc 核心的设计模式的思想体现,他自己就是一个大工厂,把所有的bean实例都给放在了spring容器里(大工厂),如果你要使用bean,就找spring容器就可以了
  1. spring默认来说,对每个bean走的都是一个单例模式,确保说你的一个类在系统运行期间只有一个示例对象,只有一个bean
  1. 代理模式:如果说你要对一些类的方法切入一些增强的代码,会创建一些动态代理的对象,让你对那些目标对象的访问,先经过动态代理对象,动态代理对象先做一些增强的代码,调用你的目标对象
    在设计模式里,就是一个代理模式的体现和运用,让动态代理的对象,去代理你的目标对象,在这个过程中做一些增强

七、spring mvc 核心架构

核心 : servlet:DispatcherServlet

  1. tomcat 的工作线程将请求转交给spring mvc 框架的 DispatcherServlet
  2. DispatcherServlet 根据请求信息调用 HanderMapping, 解析请求对应的Handler(查找@Controller ),我们一般会给controller 加上 @RequestMapping 注解,标注哪些controller用来处理哪些请求,此时根据请求的uri,定位到controller进行处理
  3. 解析到对应的Handler后,开始由HandlerAdapter适配器处理。(查找@RequestMapping ),对每个方法一般也会加@RequestMapping
  4. 他会直接调用controller 的某个方法来处理请求
  5. 我们的controller方法有一个返回值,以前的时候走jsp、模板技术,返回一个模板页面,spring mvc使用模板技术,对html页面做一个渲染;现在返回一个 json 串,前后端分离
  6. 再把渲染以后的 html 页面返回给浏览器去进行显示;前端负责把html页面渲染给浏览器

八、spring cloud 核心架构

spring boot、spring、spring mvc,让你开发那种单体架构的系统,spring cloud让你开发分布式系统,让你把系统拆分为很多子系统,子系统互相之间进行请求和调用,

  • 12
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
退役光伏组件回收及利用的报告 随着光伏行业的不断发展,大量的光伏组件在使用一段时间后会逐渐退役退役光伏组件的回收与利用已成为一个重要的问题,对于环境保护和资源利用具有重要意义。本报告将从退役光伏组件回收的必要性、回收方式、利用途径等方面进行分析和探讨。 一、退役光伏组件回收的必要性 1. 环境保护:在光伏组件的生产过程中,会产生大量的废弃物和污染物,这些废弃物和污染物如果不得到妥善处理,将会对环境造成严重的污染和破坏。而退役光伏组件的回收可以减少废弃物和污染物的产生,进而保护环境。 2. 资源利用:光伏组件中的许多材料都是稀缺资源,如硅、银等,如果这些材料不能得到充分的回收和利用,将会浪费大量的资源。而退役光伏组件的回收可以回收这些稀缺资源,进而实现资源的再利用。 二、退役光伏组件回收的方式 1. 机械回收法:机械回收法是指通过机械设备对光伏组件进行拆解和分解,将各种组件和材料分离出来,以便进行再利用。这种方式具有高效、节能、环保等优点。 2. 化学回收法:化学回收法是指通过化学方法将光伏组件中的各种材料进行分离和回收。这种方式具有回收效率高、处理速度快等优点。 三、退役光伏组件的利用途径 1. 再利用:退役光伏组件中的许多材料可以进行再利用,如硅、银等,可以用于制作新的光伏组件,降低制造成本。 2. 回收利用:退役光伏组件中的许多材料可以进行回收利用,如铜、铝等,可以用于制作其他产品,如电子产品、汽车、建筑等。 3. 能源利用:退役光伏组件中的许多材料也可以进行能源利用,如可燃物质,可以用于发电或生产热水等。 四、结论 退役光伏组件的回收与利用具有重要的环境保护和资源利用意义。机械回收法和化学回收法是目前主要的回收方式。退役光伏组件的再利用、回收利用和能源利用是主要的利用途径。未来,随着光伏行业的不断发展,退役光伏组件的回收与利用也将得到更加广泛的关注和重视。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值