首页 > 其他分享 >Spring

Spring

时间:2024-06-09 23:00:05浏览次数:15  
标签:控制器 Spring 配置 bean 处理器 starter

  • Spring框架 
IOC(依赖注入)AOP(面向切面编程)
工厂模式代理模式
Spring的核心Spring框架的重要主城部分

在Spring的配置文件中配置相应的bean,设置相关属性,让Spring容器来生成类的实例对象以及管理对象。Spring容器启动时会把配置文件中的bean都初始化,在需要调用的时候把初始化好的bean分配给于需要调用的bean类;

三种注入方式:构造器注入、setter方法注入、根据注解注入

将程序中的交叉业务逻辑封装成一个切面,然后注入到目标对象中;

有两类可以实现的技术:一是采用动态代理技术,利用截取消息的方式,对该消息记性装饰取代原有对象行为的执行;二是采用静态织入,引入特定的语法闯进“方面”,从而使得编辑器也一再编译期间植入有关“方面”的代码。

Spring bean的生命周期:

  1. 实例化bean;
  2. 初始化bean;
  3. 接受请求service;
  4. 销毁destroy; 

spring支持的集中bean的作用域:

  1. singleton:默认,每个容器中只有一个bean实例,单例模式由BeanFactory自身来维护;
  2. prototype :为每一个bean请求提供一个实例;
  3. request:为每一个网络请求创建一个实例,在请求完成以后,bean会失效并被垃圾回收期回收;
  4. session:与request范围类似,确保每个session中有一个bean的实例,在session过期后,bean会随之失效;
  5. global-session:全局作用域,global-session和Portlet应用相关

 Spring基于xml注入bean的几种方式:

  1. Set方法注入;
  2. 构造器注入:a、通过index设置参数的位置;b、通过type设置参数类型;
  3. 静态工厂注入;
  4. 实例工厂;

Spring框架用到的设计模式:

  1. 工厂模式:BeanFactory就是简单的工厂模式的体现,用来创建对象的实例;
  2. 单例模式:Bean默认为单例模式;
  3. 代理模式:Spring的AOP功能用到了JDK的动态代理和CGLIB字节码生成技术;
  4. 模板方法:用来解决代码重复的问题;
  5. 观察者模式: 定义对象键一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都会得到通知被制动更新。
  •  SpringMVC

MVC是一种设计模式,M-Model模型,V-View视图,C-Controller控制器。

SpringMVC是MVC的开源框架,是Spring的子模块,在Spring原有基础上提供了web应用的MVC模块

组件:前端控制器DispatcherServlet,处理器映射器HandlerMapper,处理器适配器HandlerAdapter,处理器Handler,视图解析器View resolver,视图View。

工作原理:

  1. 用户发送请求到前端控制器;
  2. 前端控制器收到请求调用处理器映射器;
  3. 处理器映射器找到具体的处理器(根据xml配置、注解进行查找),生成处理器对象及处理器拦截器一并返回给前端控制器;
  4. 前端控制器调用处理器适配器;
  5. 处理器适配器经过适配调用具体的处理器(后端控制器);
  6. 处理器执行完成返回ModelAndView;
  7. 处理器适配器将处理器执行结果ModelAndView返回给前端控制器;
  8. 前端控制器将ModelAndView传给视图解析器;
  9. 视图解析器解析后返回具体View;
  10. 前端控制器根据View进行渲染视图;
  11. 前端控制器响应用户;

常用注解:

  1. @RequestMapping:处理请求url映射的注解,可用于类或方法上,用于类上表示类中所有响应请求的方法都是以改地址作为父路径;
  2. @RequestBody:接受http请求的json数据,将json转化为java对象;
  3. @ResponseBody:将controller方法返回对象转化为json对象响应给客户。
  • SpringBoot:是Spring开源组织下的子项目,是Spring组件一站式解决方案,主要简化了使用Spring的难度,减省了繁重的配置,提供了各种启动器。

优点:

  1. 独立运行:内嵌了各种servlet容器,Tomcat、Jetty等,不再需要达成war包部署到容器中,只要打成一个可执行的jar包就能独立云顶,所有的依赖都在一个jar包中。
  2. 简化配置:spring-boot-starter-web启动器自动依赖其他组件,减少了maven的配置。
  3. 自动配置:能根据当前类路径下的类、jar包来自动配置bean。
  4. 无代码生成和XML配置:配置过程中无代码生成,无需XML配置文件就能完成所有配置工作,这一切都是借助于条件注解完成的,也是Spring4.x的核心功能之一。
  5. 应用监控:提供一系列端点可以监控服务及应用,做健康检测。

核心注解:@SpringBootApplication,启动类上的注解

  1. @SpringBootConfiguration:组合了@Configuration注解,实现配置文件的功能;
  2. @EnableAutoConfiguration:打开自动配置的功能,也可以关闭某个自动配置的选项,如关闭数据源自动配置功能:@SpringBootApplication(exculde={DataSourceAutoConfiguration.class})
  3. @ComponentScan:Spring组件扫描。

运行Spring Boot的方式:

  1. 打包命令或者放到容器中运行;
  2. 用Maven/Gradle插件运行;
  3. 直接执行main方法运行;

Starters:启动器,包含了一系列可以集成到应用里面的依赖包,可以一站式集成Spring及其他技术,不需要到处找示例代码和依赖包。

springboot常用的starter:

  1. spring-boot-starter-web:嵌入tomcat和web开发需要servlet与jsp支持;
  2. spring-boot-starter-data-jpa:数据库支持;
  3. spring-boot-starter-data-redis:redis数据库支持;
  4. spring-boot-starter-data-solr:solr支持;
  5. mybatis-spring-boot-starter:第三方的mybatis集成starter

实现热部署:Spring Loaded、Spring-boot-devtools

Spring Boot配置加载顺序:properties文件;YAML文件;系统环境变量;命令行参数

核心配置文件:

  1. application:用于Spring Boot项目的自动化配置;
  2. bootstrap:使用Spring Cloud Config配置中心时,需要在该配置文件中添加连接到配置中心的配置属性来加载外部配置中心的配置信息;一些固定的不能被覆盖的属性;一些加密/解密场景;

标签:控制器,Spring,配置,bean,处理器,starter
From: https://blog.csdn.net/xongxia/article/details/139381014

相关文章

  • SpringBoot: 可执行jar的特殊逻辑
    这一篇我们来看看Java代码怎么操作zip文件(jar文件),然后SpringBoot的特殊处理,文章分为2部分ZipAPI解释,看看我们工具箱里有哪些工具能用SpringBoot的特殊处理,看看SpringBootJar和普通Jar的不同1.ZipAPI解释1.ZipFile我们先通过ZipFile来读取jar文件,通过ZipFile#entries......
  • 基于SpringBoot+Vue+uniapp的大学生就业信息平台(源码+lw+部署文档+讲解等)
    文章目录前言详细视频演示具体实现截图技术栈后端框架SpringBoot前端框架Vue持久层框架MyBaitsPlus系统测试系统测试目的系统功能测试系统测试结论为什么选择我代码参考数据库参考源码获取前言......
  • 基于SpringBoot+Vue+uniapp的网络小说微信小程序的详细设计和实现(源码+lw+部署文档+
    文章目录前言详细视频演示具体实现截图技术栈后端框架SpringBoot前端框架Vue持久层框架MyBaitsPlus系统测试系统测试目的系统功能测试系统测试结论为什么选择我代码参考数据库参考源码获取前言......
  • 基于SpringBoot+Vue+uniapp的校友林微信小程序的详细设计和实现(源码+lw+部署文档+讲
    文章目录前言详细视频演示具体实现截图技术栈后端框架SpringBoot前端框架Vue持久层框架MyBaitsPlus系统测试系统测试目的系统功能测试系统测试结论为什么选择我代码参考数据库参考源码获取前言......
  • Spring Boot入坑-11-打包和发布
    准备环境Java运行环境Java的应用多发布于Linux环境,如CentOS7部署应用前,在远程Linux主机或虚拟机上,需要安装JDK或JRE,使用如下命令安装一个OpenJDKyum-yinstalljava-1.8.0-openjdk数据库环境一般应用都需要有数据库支持,像MySQL,但一般在企业中会由运维或DBA提供......
  • Spring Boot入坑-12-项目实战
    目标掌握后端项目整体架构搭建,掌握从0到1构建一个完整项目巩固已学习的后端技术,覆盖Java基础、SpringBoot的主要课程内容,包括但不限:序列化、反射、注解、泛型、Lambda、Stream、REST、Interceptor、数据访问、Swagger等等一些扩展内容的学习,比如登录、密码加密、项目部......
  • Spring Boot入坑-10-Git
    简介一个开源的分布式版本控制系统基于Git协议的代码托管平台主要有Github和Gitlab,国内的也有比如Gitee比较多的企业使用Gitlab构建自己的代码托管平台其主要作用是,对代码或文档进行版本化记录与控制主要概念工作区:个人电脑中能看到的项目的目录暂存区:数据暂......
  • 基于springboot+vue.js+uniapp小程序的流浪猫狗救助救援网站附带文章源码部署视频讲解
    文章目录前言详细视频演示具体实现截图技术栈后端框架SpringBoot前端框架Vue持久层框架MyBaits系统测试系统测试目的系统功能测试系统测试结论为什么选择我代码参考数据库参考源码获取前言......
  • SpringBoot实现上传头像(查看头像)
    SpringBoot实现上传头像给功能和查看头像功能文章目录目录文章目录1.上传头像1.这里的AppConfig记得定义一下 2.引入AppConfig3.上传文件代码 2.获取头像 1.实现readFile方法1.上传头像首先我的代码中在application.properties中设置了上传文件的根目录......
  • SpringBoot社区配送服务系统小程序-计算机毕业设计源码88705
    摘要随着科学技术的飞速发展,社会的方方面面、各行各业都在努力与现代的先进技术接轨,通过科技手段来提高自身的优势,社区当然也不例外。社区配送服务系统小程序是以实际运用为开发背景,运用软件工程原理和开发方法,采用Java技术构建的一个管理系统。整个开发过程首先对软件系统进......