首页 > 其他分享 >Spring,SpringBoot,SpringMvc

Spring,SpringBoot,SpringMvc

时间:2024-09-13 21:25:26浏览次数:11  
标签:容器 SpringBoot SpringMvc Spring 可以 注解 方法 注入

1.Spring是什么?有什么特性?有哪些模块?常用注解?

1.1 Spring是什么?

      一句话概况的话:Spring是一个轻量级,非入侵式的控制反转(IOC)和面向切面(AOP)的框架

1.2 有什么特性?

       Spring特性:

                1. AOP编程的支持

        Spring提供了面向切面编程,可以方便的实现对程序进行权限拦截,允许监控,自定义注解等切面功能。

                2. IOC和DI的支持

        Spring的核心就是IOC和DI,IOC就是传统开发模式种需要自己不断的new对象现在不需要在进行创建,把创建对象的任务交给容器,程序只需要依赖注入(DI)就可以了

        DI就是(依赖注入)容器在允许期间,动态的为应用程序提供运行时所依赖的资源,称之为依赖注入

                3. 声明式事务的支持

        支持通过配置就来完成对事务的管理,不需要通过硬编码的方式,以前重复的一些事物提交,回滚的JDBC代码,都可以不用自己写了

                4. 快速集成功能

        方便集成各种框架,内部对各种优秀框架的直接支持

1.3 Spring的七大模块:

        1. Spring Core:Spring的核心,它是框架最基础的部分,提供了IOC和依赖注入DI特性

        2. Spring Context:Spring上下文容器,它是BeanFactory功能加强的一个子接口

        3. Spring Web:它提供Web应用开发的支持

        4. Spring Mvc:它针对Web应用种MVC思想的实现

        5. Spring Dao:提供对 JDBC 抽象层,简化了 JDBC 编码,同时,编码更具有健壮性

        6. Spring ORM:它支持用于流行的 ORM 框架的整合,比如:Spring + Hibernate、Spring + iBatis、Spring + JDO 的整合等

        7. Spring AOP:即面向切面编程,它提供了与 AOP 联盟兼容的编程实现

1.4 Spring中有哪些常用注解?

        

Web:

        @Controller:@Controller标识的类,该类代表控制器类(控制层/表现层),这里控制层里面的每个方法,都可以去调用@Service标识的类(业务逻辑层),@Service标识的类中的方法可以继续调用@Resposity标识的接口实现类(Dao层/持久层)

        @RestController:它结合了@Controller@ResponseBody两个注解的功能,并提供了更简洁的方式来编写处理HTTP请求并返回响应的控制器。

        @RequestMapping:用于映射Web请求,包括访问路径和参数。如果是Restful风格接口,还可以根据请求类型使用不同的注解:

        @GetMapping

        @PostMapping

        @PutMapping

        @DeleteMapping

        @ResponseBody:将Controller的方法返回的对象,通过适当的转换器转换为指定的格式之后,写入到response对象的body区,通常用来返回JSON数据或者是XML数据。

        @RequestBody:主要用来接收前端传递给后端的json字符串中的数据(请求体中的数据)

        @PathVariable:用来赋予请求url中的动态参数,即:将请求URL中的模板变量映射到接口方法的参数上

容器:

        @Component:作用是告诉Spring框架将被注解的类实例化为Bean,并将其纳入Spring容器的管理。通过这种方式,我们可以使用Spring的依赖注入(DI)机制来使用和管理这些组件。

        @Service:标记当前类是一个service类,加上该注解会将当前类自动注入到spring容器中

        @Repository:它用来标注访问层的类(Dao层),它表示一个仓库,主要用于封装对于数据库的访问。其实现方式与@Component注解相同

        @Autowired:它默认按照类型进行注入,通过匹配对象类型来实现自动装配。如果存在多个匹配的bean,可以使用 @Qualifier 注解结合 @Autowired 来指定具体的bean名称进行注入。

        @Qualifier:@Qualifier注解用于解决同一类型多个bean的依赖注入问题,即当一个接口有多个实现类的时候,通过@Autowired自动装配可能会出现不确定的情况,这时就需要配合@Qualifier注解进行指定。

        @Configuration:主要用于标注在类上当某个类标注了@Configuration注解时,表示这个类是Spring的一个配置类

        @Value:属于spring的注解,在spring-beans包下,可以在 字段 或 方法参数 或 构造函数参数 上使用,通常用于属性注入。支持SpEL (Spring Expression Language)表达式来注入值,同时也支持属性占位符注入值。

        @Bean:用于将对象存入spring的ioc容器中,同@controller、@Service、@Component、@Configuration、@Repository等几个注解是一样的,都是负责将对象存入容器当中。只不过方式不同,他们是用在类上面的,然后将当前类通过无参构造函数创建对象然后放入容器,而@Bean是用在方法上,将当前方法的返回值对象放到容器当中

        @Scope:主要作用是调节Ioc容器中的作用域,在Spring IoC容器中主要有以下五种作用域:基本作用域:singleton(单例)、prototype(多例);Web 作用域(reqeust、session、globalsession),自定义作用域

AOP:

        @Aspect:作用是把当前类标识为一个切面供容器读取

        @After :final增强,不管是抛出异常或者正常退出都会执行

        @Before:前置通知, 在方法执行之前执行

        @Around:环绕增强,相当于MethodInterceptor

        @PointCut:Pointcut是植入Advice的触发条件。每个Pointcut的定义包括2部分,一是表达式,二是方法签名。方法签名必须是 public及void型。可以将Pointcut中的方法看作是一个被Advice引用的助记符,因为表达式不直观,因此我们可以通过方法签名的方式为 此表达式命名。因此Pointcut中的方法只需要方法签名,而不需要在方法体内编写实际代码

事务:

        @Transactional:可以作用于接口、接口方法、类以及类方法上,开启事务

2.SpringBoot

       2.1 什么是SpringBoot

               springboot属于spring的一个子项目,可以说是基于spring,主要是为了简化配置而诞生的一个解决方案框架,它可以利用引入starter而引入一组starter,从而简化了坐标的引入,同时简化配置使我们能更快速的专注单体程序(微服务)本身的开发

        2.2 优点             

                快速开发:Spring Boot提供了自动化配置和约定大于配置的方式,可以快速方便地创建一个Spring应用程序。开发人员可以专注于业务逻辑开发,而无需关注底层的技术实现。

                简化配置:Spring Boot自动化配置功能可以让开发人员不需要编写大量的XML配置文件。

                极佳的兼容性:Spring Boot可以很好地兼容现有的Spring应用程序,而不需要进行重构。

                微服务能力:Spring Boot提供了各种依赖库和组件,可以用于快速构建微服务应用程序。

                智能化管理:Spring Boot应用程序提供了各种运维和监控功能,可以帮助开发人员更好地管理应用程序。

                可扩展性强:Spring Boot是基于Spring基础之上,天然支持扩展和增强。

3.SpringMvc

        3.1 什么是SpringMvc

                MVC是模型(model),视图(View),控制器(controller)的简写,是一种软件设计规范

                是将业务逻辑,数据,显示分离的方法来组织代码

                MVC主要作用是降低了视图与业务逻辑间的双向耦合

                MVC不是一种设计模式,MVC是一种架构模式,当然不同的MVC存在差异

        3.2 SpringMvc优点

                角色划分清晰:控制器(controller)、验证器(validator)、命令对象(command obect)、表单对象(form object)、模型对象(model object)、Servlet分发器(DispatcherServlet)、处理器映射(handler mapping)、试图解析器(view resoler)等等。每一个角色都可以由一个专门的对象来实现。

                JSP表单标签库:在Spring2.0中引入的表单标签库,使用在JSP编写表单更加容易。

                

标签:容器,SpringBoot,SpringMvc,Spring,可以,注解,方法,注入
From: https://blog.csdn.net/2201_75950821/article/details/140717018

相关文章

  • 万字长文带你窥探Spring中所有的扩展点
    写在前面Spring的核心思想就是容器,当容器refresh的时候,外部看上去风平浪静,其实内部则是一片惊涛骇浪,汪洋一片。Springboot更是封装了Spring,遵循约定大于配置,加上自动装配的机制。很多时候我们只要引用了一个依赖,几乎是零配置就能完成一个功能的装配。由spring提供的、在容......
  • spring boot 3.3.3 通用 pom.xml
      springboot3.3.3通用pom.xml <?xmlversion="1.0"encoding="UTF-8"?><projectxmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation=&qu......
  • 基于java+springboot+vue的网上宠物店系统
    ......
  • 基于Java Springboot自驾游攻略查询系统
    一、作品包含源码+数据库+设计文档万字+PPT+全套环境和工具资源+部署教程二、项目技术前端技术:Html、Css、Js、Vue、Element-ui数据库:MySQL后端技术:Java、SpringBoot、MyBatis三、运行环境开发工具:IDEA/eclipse数据库:MySQL5.7数据库管理工具:Navicat10以上版本环境......
  • 基于Java Springboot考研论坛系统
    一、作品包含源码+数据库+全套环境和工具资源+部署教程二、项目技术前端技术:Html、Css、Js、Vue、Element-ui数据库:MySQL后端技术:Java、SpringBoot、MyBatis三、运行环境开发工具:IDEA/eclipse数据库:MySQL5.7数据库管理工具:Navicat10以上版本环境配置软件:JDK1.8+Ma......
  • 基于Java Springboot社区助老志愿者服务平台
    一、作品包含源码+数据库+设计文档万字+PPT+全套环境和工具资源+部署教程二、项目技术前端技术:Html、Css、Js、Vue、Element-ui数据库:MySQL后端技术:Java、SpringBoot、MyBatis三、运行环境开发工具:IDEA/eclipse数据库:MySQL5.7数据库管理工具:Navicat10以上版本环境......
  • 基于Java Springboot悦己美容院管理系统
    一、作品包含源码+数据库+设计文档万字+PPT+全套环境和工具资源+部署教程二、项目技术前端技术:Html、Css、Js、Vue、Element-ui数据库:MySQL后端技术:Java、SpringBoot、MyBatis三、运行环境开发工具:IDEA/eclipse数据库:MySQL5.7数据库管理工具:Navicat10以上版本环境......
  • 基于Java Springboot社区助老志愿者服务平台
    一、作品包含源码+数据库+设计文档万字+PPT+全套环境和工具资源+部署教程二、项目技术前端技术:Html、Css、Js、Vue、Element-ui数据库:MySQL后端技术:Java、SpringBoot、MyBatis三、运行环境开发工具:IDEA/eclipse数据库:MySQL5.7数据库管理工具:Navicat10以上版本环境......
  • 基于SpringBoot的学生网上选课系统(11355)
     有需要的同学,源代码和配套文档领取,加文章最下方的名片哦一、项目演示项目演示视频二、资料介绍完整源代码(前后端源代码+SQL脚本)配套文档(LW+PPT+开题报告)远程调试控屏包运行三、技术介绍Java语言SSM框架SpringBoot框架Vue框架JSP页面Mysql数据库IDEA/Eclipse开发四、项......
  • 基于SpringBoot智慧外贸平台的设计与实现
    1.1 研究背景21世纪,我国早在上世纪就已普及互联网信息,互联网对人们生活中带来了无限的便利。像大部分的企事业单位都有自己的系统,由从今传统的管理模式向互联网发展,如今开发自己的系统是理所当然的。那么开发智慧外贸平台意义和用处有哪些呢?1.首先提升形象:这是每个企事业单......