Spring+SpringMVC+SpringBoot

这篇具有很好参考价值的文章主要介绍了Spring+SpringMVC+SpringBoot。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Spring

bean

bean基础配置

bean别名配置

注意事项:

获取bean无论是通过id还是name获取。如果无法获取到,将抛出异常NoSuchBeanDefinitionException

bean的作用范围配置

适合交给容器进行管理的bean

表现层对象、业务层对象、数据层对象、工具对象

不适合交给容器进行管理的bean

封装实体的域对象

bean实例化的三种方式

bean实例化--构造方法

提供可访问的构造方法

配置

无参构造方法如果不存在,将抛出异常BeanCreationException

bean实例化--静态工厂(了解)

静态工厂

配置

bean实例化--实例工厂与FactoryBean(了解)

实例工厂

配置

FactoryBean

配置

bean的生命周期

生命周期:从创建到消亡的完整过程

bean生命周期:bean从创建到销毁的整体过程

bean生命周期控制:在bean创建后到销毁前做一些事情

提供生命周期控制方法

控制生命周期控制方法

核心容器

依赖注入方式

setter注入
构造器注入
自动装配
集合注入

  

加载properties文件

1.开启context命名空间

2.使用context空间加载properties文件

3.使用${}读取加载的属性值

加载properties文件

容器

容器初始化,创建容器

获取bean

容器类层次结构图

核心容器总结

容器相关

bean相关

依赖注入相关

注解

注解开发bean

纯注解开发模式

1.定义bean

@Component是通用的

@Controller

@Service

@Repository

2.纯注解开发

@Configuration注解用于设定当前类为配置类

@ComponentScan注解用于设定扫描路径,此注解只能添加一次,多个数据请用数组格式

//加载配置文件初始化容器

ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml");

变为

//加载配置类初始化容器

ApplicationContext ctx=new AnnotationConfigApplicationContext(SpringConfig.class);

注解开发依赖注入

bean的作用范围

使用@Scope定义作用范围

使用@PostConstruct,@PreDestroy定义bean生命周期

@Scope("singleton")

    public class BookDaoImpl implements BookDao {
        public BookDaoImpl(){
            System.out.println("book dao constructor...");
        }

        @PostConstruct
        public void init() {
            System.out.println("init");
        }
        @PreDestroy
        public void destrop() {
            System.out.println("destrop");
        }
    }

注解开发依赖注入

使用@Autowired注解开启自动装配模式(按类型)
@Service
    public class BookServiceImpl implements BookService {
        @Autowired
        @Qualifier("bookDao")
        private BookDao bookDao;

        public void save() {
            System.out.println("book service save ...");
            bookDao.save();
        }
    }

注意:自动装配基于反射设计创建对象并暴力反射对应属性为私有属性初始化数据,因此无需提供setter方法

注意:自动装配建议使用无参构造方法创建对象(默认),如果不提供对应构造方法,请提供唯一的构造方法

使用@Qualifier注解开启指定名称装配bean
@Service
public class BookServiceImpl implements BookService {
    @Autowired
    @Qualifier("bookDao")
    private BookDao bookDao;
}

注意:使用@Qualifier注解无法单独使用,必须配合@Autowired注解使用

使用@value实现简单注入
@Repository("bookDao")
    public class BookDaoImpl implements BookDao {
        @Value("itheima")
        private String name;
        public void save() {
            System.out.println("book dao save..." + name);
        }
    }

注意:路径仅支持单一文件配置,多文件请使用数组格式配置,不允许使用通配符*

注解开发管理第三方bean

第三方bean管理

1.使用@Bean配置第三方Bean

@Configuration
    public class SpringConfig {
        //1.定义一个方法获得要管理的对象
        //2.添加@Bean,表示该方法的返回值是一个bean
        @Bean
        public DataSource dataSource(){
            DruidDataSource ds=new DruidDataSource();
            ds.setDriverClassName("com.mysql.jdbc.Driver");
            ds.setUrl("jdbc:mysql://localhost:3306/spring_db");
            ds.setName("root");
            ds.setPassword("root");
            return ds;
        }
    }

2.使用独立的配置类管理第三方Bean

将独立的配置类加入核心配置

方式一:导入式

public class jdbcConfig {
    @Bean
    public DataSource dataSource(){
        DruidDataSource ds=new DruidDataSource();
        /*ds.setDriverClassName("com.mysql.jdbc.Driver");
        ds.setUrl("jdbc:mysql://localhost:3306/spring_db");
        ds.setName("root");
        ds.setPassword("root");*/
        //相关配置
        return ds;
    }
}

使用@Import注解手动加入配置类到核心配置,此注解只能添加一次,多个数据请用数组格式

@Configuration
    @Import({jdbcConfig.class})
    public class SpringConfig {
    }

方式二:扫描式(不推荐)

@Configuration
public class jdbcConfig {
    @Bean
    public DataSource dataSource(){
        DruidDataSource ds=new DruidDataSource();
        /*ds.setDriverClassName("com.mysql.jdbc.Driver");
		  ds.setUrl("jdbc:mysql://localhost:3306/spring_db");
		  ds.setName("root");
		  ds.setPassword("root");*/
        //相关配置
        return ds;
    }
}

使用@ComponetScan注解扫描配置类所在的包,加载对应的配置类信息

@Configuration
    @ComponentScan("com.itheima.config")
    public class SpringConfig {
    }

注解开发实现为第三方bean注入资源

1.简单类型的注入
public class jdbcConfig {
    @Value("com.mysql.jdbc.Driver")
    private String driver;
    @Value("jdbc:mysql://localhost:3306/spring_db")
    private String url;
    @Value("root")
    private String userName;
    @Value("root")
    private String password;

    @Bean
    public DataSource dataSource(){
        DruidDataSource ds=new DruidDataSource();
        ds.setDriverClassName(driver);
        ds.setUrl(url);
        ds.setName(userName);
        ds.setPassword(password);
        //相关配置
        return ds;
    }
}
2.引用类型的注入
public class jdbcConfig {
    @Bean
    public DataSource dataSource(BookDao bookDao){
        System.out.println(bookDao);
        DruidDataSource ds=new DruidDataSource();
        //相关配置
        return ds;
    }
}

引用类型注入只需要为bean定义方法设置形参即可,容器会根据类型自动装配对象

@Configuration
    @Import({jdbcConfig.class})
    @ComponentScan("com.itheima")
    public class SpringConfig {

    }
@Repository("bookDao")
    public class BookDaoImpl implements BookDao { 
        public void save() {
            System.out.println("book dao save..." );
        }
    }

注解开发总结

XML配置对比注解配置

整合

spring整合mybatis

思路分析

MyBatis程序核心对象分析

核心对象为SqlSessionFactoryBuilder

整合MyBatis

整合MyBatis

添加坐标,版本号要匹配

添加配置类替换xml文件

具体替换:

spring整合JUnit

添加依赖坐标

使用Spring整合JUnit专用的类加载器:@RunWith(SpringJUnit4ClassRunner.class)

指定spring的配置:@ContextConfiguration(classes=SpringConfig.class)

要测谁就自动装配谁:@Autowired

AOP

AOP简介

AOP(Aspect Oriented Programming)面向切面编程,一种编程范式,指导开发者如何组织程序结构

作用:在不惊动原始设计的基础上为其功能进行功能增强

Spring理念:无入侵式/无侵入式

AOP核心概念

连接点:JoinPoint,可以被AOP控制的方法(暗含方法执行时的相关信息)

程序执行过程中的任意位置,粒度为执行方法、抛出异常、设置变量等

在SpringAOP中,理解为方法的执行

切入点:PoingCut,匹配连接点的条件,通知仅会在切入点方法执行时被应用。

匹配连接点的式子

在SpringAOP中,一个切入点可以只描述一个具体方法,也可以匹配多个方法

通知:Advice,指哪些重复的逻辑,也就是共性功能(最终体现为一个方法)

在切入点出执行的操作,也就是共性操作

在SpringAOP中,功能最终以方法的形式呈现

切面:Aspect,描述通知与切入点的对应关系

通知类:定义通知的类

目标对象:Target,通知所应用的对象

原始功能去掉共性功能对应的类产生的对象,这种对象是无法直接完成最终工作的

代理:Proxy,目标对象无法直接完成工作,需要对其功能进行回填,通过原始对象的代理对象实现

AOP工作流程

1.Spring容器启动

2.读取所有切面配置中的切入点(只读取pt(),不读取ptx()

3.初始化bean,判定bean对应的类中的方法是否匹配到任意切入点

*匹配失败,创建对象

*匹配成功,创建原始对象(目标对象)的代理对象

4.获取bean执行方法

*获取bean,调用方法并执行,完成操作

*获取bean是代理对象时,根据代理对象的运行模式运行原始方法与增强的内容,完成操作

AOP切入点表达式

切入点:要增强的方法

切入点表达式:要进行增强的方法的描述方式

描述方式一:执行com.itheima.dao包下的BookDao接口中的无参数update方法

execution(void com.itheima.dao.BookDao.update())

描述方式二:执行com.itheima.dao.impl包下的BookDaoImpl类中的无参数update方法

切入带你表达式标准格式:动作关键字(访问修饰符 返回值 包名.类/接口名.方法名(参数)异常名)

execution(public User com.itheima.service.UserService.findById(int))

动作关键字:描述切入点的行为动作,例如execution表示执行到指定切入点

访问修饰符:public,private等,可以省略

返回值

包名

类/接口名

方法名

参数

异常名:方法定义中抛出指定异常,可以省略

可以使用通配符描述切入点,快速描述

*:单个独立的任意符号,可以单独出现,也可以作为前缀或者后缀的匹配符出现

..:多个连续的任意符号,可以独立出现,常用于简化包名与参数的书写

+:专用于匹配子类类型

书写技巧

所有代码按照标准规范开发,否则以下技巧全部失效.

描述切入点通常描述接口,而不描述实现类.

访问控制修饰符针又书妾口开发均采用 public 描述(可省略访问控制修饰符描述).

返回值类型对于增删改类使用精准类型加速匹配,对于查询类使用*通配快速描述.

包名书写尽量不使用..匹配,效率过低,常用*做单个包描述匹配,或精准匹配.

接口名/类名书写名称与模块相关的采用*匹配,例如 Userservice 书写成* Service ,绑定业务层接口名.

方法名书写以动词进行精准匹配,名词采用*匹配,例如 getByld 书写成getBy*, selectAll 书写成 selectAll .

参数规则较为复杂,根据业务方法灵活调整.

通常不使用异常作为匹配规则

AOP通知类型

AOP通知描述了抽取的共性功能,根据共性功能抽取的位置不同,最终运行代码时要将其加入到合理的位置

AOP通知共分为5种类型

前置通知

后置通知

环绕通知(重点)

返回后通知(了解)

抛出异常后通知(了解)

AOP通知获取数据

获取切入点方法的参数

JoinPoint:适用于前置、后置、返回后、抛出异常后通知

ProceedJoinPoint::适用于环绕通知

获取切入点方法返回值

返回后通知

环绕通知

获取切入点方法运行异常通知

抛出异常后通知

环绕通知

事务

事务简介

事务作用:在数据层保障一系列的数据库操作同成功同失败

Spring事务作用:在数据层或业务层保障一系列的数据库操作同成功同失败

1.在业务层接口上添加Spring事务管理

注意事项

Spring注解式事务通常添加在业务层接口中方而不会添加到业务层实现类中,降低耦合

注解式事务可以添加到业务方法上表示当前方法开启事务,也可以添加到接口上表示当前接口所有方法开启事务

2.设置事务管理器

注意事项

事务管理器要根据实现技术进行选择

MyBatis框架使用的是JDBC事务

3.开启注解式事务驱动

事务角色

事务角色

事务管理员:发起事务方,在Spring中通常指代业务层开启事务的方法,

事务协调员:加入事务方,在Spring中通常指代数据层方法,也可以是业务层方法

事务属性

事务传播行为:事务协调员对事务管理员所携带事务的处理态度

SpringMVC

SpringMVC简介

SpringMVC概述

SpringMVC技术与Servlet技术功能等同,均属于web层开发技术

SpringMVC是一种基于Java实现MVC模型的轻量级Web框架

优点:
使用简单,开发便捷(相比于Servlet)

灵活性强

SpringMVC是一种表现出框架技术

SpringMVC用于进行表现出功能开发

入门案例

1.使用SpringMVC技术需要先导入SpringMVC坐标与Servlet坐标

2.创建SpringMVC控制器类(等同于Servlet功能)

3.初始化SpringMVC环境(同Spring环境),设定SpringMVC加载对应的bean

4.初始化Servlet容器,加载SpringMVC环境,并设置SpringMVC技术处理的请求

注解

入门案例工作流程分析

启动服务器初始化过程

1.服务器启动,执行ServletContainersInitConfig类,初始化web容器

2.执行createServletApplicationContext方法,创建了WebApplicationContext对象

3.加载SpringMvcConfig

4.执行@ComponentScan加载对应的bean

5.加载UserController,每个@RequestMapping的名称对应一个具体的方法

6.执行getServletMappings方法,定义所有的请求都通过SpringMVC

单次请求过程

1.发送请求localhost/save

2.web容器发现所有请求都经过SpringMVC,将请求交给SpringMVC处理

3.解析请求路径/save

4.由/save匹配执行对应的方法save()

5.执行save()

6.检测到有@ResponseBody直接将save()方法的返回值作为响应求体返回给请求方

Controller加载控制

因为功能不同,如何避免Spring错误的加载到SpringMVC的bean——加载Spring控制的bean的时候排除掉SpringMVC控制的bean

SpringMVC相关bean加载控制

SpringMVC加载的bean对应的包均在com.itheima.controller包内

Spring相关bean加载控制

方式一:Spring加载的bean设定扫描范围为com.itheima,排除掉controller包内的bean

方式二:Spring加载的bean设定扫描范围为精准范围,例如service包、dao包等

方式三:不区分Spring与SpringMVC的环境,加载到同一个环境中

请求与响应

请求映射路径

名称:@RequestMapping

类型:方法注解 类注解

位置:SpringMVC控制器方法定义上方

作用:设置当前控制器方法请求访问路径,如果设置在类上统一设置当前控制器方法请求访问路径前缀

范例:

属性 value(默认):请求访问路径,或访问路径前缀

SpringBoot

SpringBoot入门

SpringBoot入门程序

1.创建新模块,选择spring初始化,并配置模块相关基础信息

2.选择当前模块需要使用的技术集

3.开发控制器类

4.运行自动生成的Application类

最简SpringBoot程序所包含的基础文件

1.pom.xml

2.Application类

Spring程序与SpringBoot程序对比

基于idea开发SpringBoot程序需要确保联网且能够加载到程序框架结构

SpringBoot官网创建方式

1.进入官网,点击Quickstart Your Project

2.进行配置

3.添加依赖

4.生成zip压缩文件

SpringBoot项目快速启动

1.对SpringBoot项目打包(执行Maven构建指令package)

2.执行启动指令

Spring+SpringMVC+SpringBoot,java,rpc,开发语言

注意事项:jar执行命令行启动需要依赖Maven插件支持,请确认打包时是否具有SpringBoot对应的Maven插件

Spring+SpringMVC+SpringBoot,java,rpc,开发语言

SpringBoot简介

起步依赖

SpringBoot是由Pivotal团队提供的全新框架,其设计目的是用来简化Spring应用的初始搭建以及开发过程

Spring程序缺点

配置繁琐

依赖设置繁琐

SpringBoot程序优点

自动配置

起步依赖(简化依赖配置)

辅助功能(内置服务器,......)

起步依赖

Spring+SpringMVC+SpringBoot,java,rpc,开发语言

Spring+SpringMVC+SpringBoot,java,rpc,开发语言

含start的为起步依赖

Spring+SpringMVC+SpringBoot,java,rpc,开发语言

辅助功能之切换web服务器

辅助功能

Spring+SpringMVC+SpringBoot,java,rpc,开发语言

SpringBoot程序启动

启动方式

Spring+SpringMVC+SpringBoot,java,rpc,开发语言

SpringBoot在创建项目时,采用jar的打包方式

SpringBoot的引导类时项目的入口,运行main方法就可以启动项目

使用maven依赖管理变更起步依赖项

Spring+SpringMVC+SpringBoot,java,rpc,开发语言

Jetty比Tomcat更轻量级,可扩展性更强(相较于Tomcat),谷歌应用引擎(GAE)已经全面切换为Jetty

基础配置

配置文件格式

修改服务器端口

Spring+SpringMVC+SpringBoot,java,rpc,开发语言

SpringBoot提供了多种属性配置方式

1.application.properties

Spring+SpringMVC+SpringBoot,java,rpc,开发语言

2.application.yml

Spring+SpringMVC+SpringBoot,java,rpc,开发语言

3.application.yaml

Spring+SpringMVC+SpringBoot,java,rpc,开发语言

自动提示功能消失解决方案

Spring+SpringMVC+SpringBoot,java,rpc,开发语言

Spring+SpringMVC+SpringBoot,java,rpc,开发语言

Spring+SpringMVC+SpringBoot,java,rpc,开发语言

Spring+SpringMVC+SpringBoot,java,rpc,开发语言

Spring+SpringMVC+SpringBoot,java,rpc,开发语言

Spring+SpringMVC+SpringBoot,java,rpc,开发语言

三种配置文件优先级

Spring+SpringMVC+SpringBoot,java,rpc,开发语言

注意事项:

SpringBoot核心配置文件名为application

SpringBoot内置属性过度,且所有属性集中在一起修改,在使用时,通过提示键+关键字修改属性

yaml

yaml格式

Spring+SpringMVC+SpringBoot,java,rpc,开发语言

yaml语法规则

Spring+SpringMVC+SpringBoot,java,rpc,开发语言

yaml数组数据

数组数据在数据书写位置的下方使用减号作为数据开始符号,每行书写一个数据,减号与数据间空格分隔

Spring+SpringMVC+SpringBoot,java,rpc,开发语言

yaml数据读取方式

使用@Value读取单个数据,属性名引用方式:${一级属性名.二级属性名......}

Spring+SpringMVC+SpringBoot,java,rpc,开发语言

封装全部数据到Environment对象

Spring+SpringMVC+SpringBoot,java,rpc,开发语言

自定义对象封装指定数据

Spring+SpringMVC+SpringBoot,java,rpc,开发语言

注意事项

自定义对象封装数据警告解决方案

添加依赖

Spring+SpringMVC+SpringBoot,java,rpc,开发语言

多环境启动

多环节开发配置

多环境启动

Spring+SpringMVC+SpringBoot,java,rpc,开发语言

Spring+SpringMVC+SpringBoot,java,rpc,开发语言

propertie文件多环境启动

Spring+SpringMVC+SpringBoot,java,rpc,开发语言

多环节命令行启动参数配置

带参数启动SpringBoot

Spring+SpringMVC+SpringBoot,java,rpc,开发语言

参数加载优先级顺序

Spring+SpringMVC+SpringBoot,java,rpc,开发语言

多环节开发兼容问题

Maven与SpringBoot多环境兼容

1.Maven中设置多环境属性

Spring+SpringMVC+SpringBoot,java,rpc,开发语言

2.SpringBoot中引用Maven属性

Spring+SpringMVC+SpringBoot,java,rpc,开发语言

3.执行Maven打包指令

Maven指令执行完毕后,生成了对应的包,其中类参与编译,但是配置文件并没有编译,而是复制到包中

Spring+SpringMVC+SpringBoot,java,rpc,开发语言

解决思路:对于源码中非java类的操作要求加载Maven对应的属性,解析${}占位符

4.对资源文件开启对默认占位符的解析

Spring+SpringMVC+SpringBoot,java,rpc,开发语言

Maven打包加载到属性,打包顺利通过

Spring+SpringMVC+SpringBoot,java,rpc,开发语言

配置文件分类

配置文件分类

在SpringBoot中提供有多级配置文件

Spring+SpringMVC+SpringBoot,java,rpc,开发语言

整合第三方技术

SpringBoot整合junit

Spring整合junit(复习)

Spring+SpringMVC+SpringBoot,java,rpc,开发语言

SpringBoot整合junit

Spring+SpringMVC+SpringBoot,java,rpc,开发语言

Spring+SpringMVC+SpringBoot,java,rpc,开发语言

Spring+SpringMVC+SpringBoot,java,rpc,开发语言

SpringBoot整合mybatis

SpringBoot整合SSM

Spring+SpringMVC+SpringBoot,java,rpc,开发语言

Spring整合mybatis(复习)

1.SpringConfig

导入JdbcConfig

导入MyBatisConfig

Spring+SpringMVC+SpringBoot,java,rpc,开发语言

2.JDBCConfig

定义数据源(加载properties配置项:driver、url、username、password)

Spring+SpringMVC+SpringBoot,java,rpc,开发语言

3.MyBatisConfig

定义SqlSessionFactoryBean

定义映射配置

Spring+SpringMVC+SpringBoot,java,rpc,开发语言

Spring+SpringMVC+SpringBoot,java,rpc,开发语言

SpringBoot整合MyBatis

1.创建新模块,选择Spring初始化,并配置模块相关基础信息

Spring+SpringMVC+SpringBoot,java,rpc,开发语言

2.选择当前模块需要使用的技术集(MyBatis、MySQL)

Spring+SpringMVC+SpringBoot,java,rpc,开发语言

3.设置数据源参数

Spring+SpringMVC+SpringBoot,java,rpc,开发语言

注意事项:

SpringBoot版本低于2.4.3(不含),Mysql驱动版本大于8.0时,需要在url连接串中配置时区

Spring+SpringMVC+SpringBoot,java,rpc,开发语言

或在MySQL数据库端配置时区解决此问题

4.定义数据层接口与映射配置

Spring+SpringMVC+SpringBoot,java,rpc,开发语言

5.测试类中注入dao接口,测试功能

Spring+SpringMVC+SpringBoot,java,rpc,开发语言文章来源地址https://www.toymoban.com/news/detail-759607.html

到了这里,关于Spring+SpringMVC+SpringBoot的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Spring、SpringMVC、SpringBoot的区别

    它们之间的区别如下: Spring 是一个完整的框架,提供了大量的功能和组件,包括依赖注入、面向切面编程、事务管理、数据访问、Web 开发等。 SpringMVC 是 Spring 框架的一部分,用于开发 Web 应用程序。它提供了 MVC(Model-View-Controller)模式的实现,将应用程序分为模型、视图和

    2024年02月05日
    浏览(63)
  • Spring、SpringMVC、SpringBoot三者的区别

            目录 Spring是什么? SpringMVC是什么? SpringBoot是什么? Spring、SpringMVC、SpringBoot三者之间的关系 Spring是一个开源的应用程序框架,它提供了一种简易的开发方式,通过依赖注入和面向切面编程,可以实现高内聚低耦合的应用程序。Spring还提供了多个模块,如Spring

    2024年02月11日
    浏览(32)
  • 【九】spring、springmvc、springboot、springcloud

            从事IT这么些年,经历了行业技术的更迭,各行各业都会有事务更新,IT行业技术更迭速度快的特点尤为突出,或许这也是从事这个行业的压力所在,但另一方面反应了这个行业人才济济。不记得什么时候听说了程序员改变世界这一口号,从而让我一直坚定的在这个行

    2024年02月05日
    浏览(45)
  • Spring学习笔记+SpringMvc+SpringBoot学习笔记

    1.1 概念 1、 POJO 是 Plain Old Java Object(简单老式Java对象)的缩写。它是指在Java开发中普通的Java对象,不依赖于特定的框架或技术。POJO 类型通常用于表示领域模型、数据传输对象(DTO)或实体对象等。 1.2 注解 1.1 SpringMVC概述 SpringMVC用于表现层开发,与Servlet相似,但使用上比

    2024年02月12日
    浏览(41)
  • spring和springboot、springMVC有什么区别?

    大家好,我是chowley,今天来聊一下,刚在面试中被问到的一个经典问题 Spring、Spring Boot 和 Spring MVC 是 Spring Framework 生态中的不同组件,各自有不同的角色和功能。以下是它们的主要区别: Spring Framework: 角色: Spring Framework 是一个全面的企业级应用开发框架,提供了一整套

    2024年01月23日
    浏览(45)
  • Spring、SpringMVC、Springboot三者的区别和联系

    最近有人问面试的一个问题:Spring、SpringMVC、Springboot三者的区别和联系,个人觉得:万变不离其宗,只需要理解其原理,回答问题信手拈来。 Spring 框架就像一个家族,有众多衍生产品,例如 boot、security、jpa等等。但他们的基础都是Spring的 Ioc和Aop ,Ioc 提供了 依赖注入 的容

    2024年04月09日
    浏览(38)
  • SpringBoot面试题2:SpringBoot与SpringCloud 区别?SpringBoot和Spring、SpringMVC的区别

    该文章专注于面试,面试只要回答关键点即可,不需要对框架有非常深入的回答,如果你想应付面试,是足够了,抓住关键点 Spring Boot 和 Spring Cloud 是 Spring 生态系统中的两个关键组件,它们有以下区别: 定位:Spring Boot 用于简化 Spring 应用程序的开发和部署,提供了一种快

    2024年02月07日
    浏览(50)
  • Spring-SpringBoot-SpringMVC-MyBatis常见面试题

    不是线程安全的,他默认是单例的,如果有多个线程会并发执行该请求对应的逻辑,在处理过程中如果有对该单例状态修改,则需要考虑线程同步问题, 他是面向编程的,用于与业务无关,可以抽取为公共模块,降低耦合,一般用于日志,事务 主要是使用AOP来记录操作日志,主要思路的使用

    2024年02月10日
    浏览(68)
  • javaweb、spring、springmvc和springboot有什么区别,都是做什么用的?

    首先不说Spring那一坨,咋们先来说说JavaWeb。看样子能刷到这个问题的都不是什么JavaWeb的熟手,但是至少Java基础是熟手吧?那么就仔细说说。 JavaWeb,顾名思义就是用Java来做Web程序。那啥又是Web程序呢?那顾名思义就是运行在Web上面的程序。 那Web程序是啥我就不用再解释了吧

    2024年02月03日
    浏览(54)
  • Spring+SpringMVC+MyBatis整合项目开发(配有项目,已开源)

    🍰 个人主页:__Aurora__ 🍞 如果文章有什么需要改进的地方还请各位大佬斧正。 🍉如果我的文章对你有帮助➡️ 关注🙏🏻 点赞👍 收藏⭐️ 🔥最近在学SSM框架,本文是根据b站【黑马程序员 ssm框架 2021 版】整理。 🔥视频链接:https://www.bilibili.com/video/BV1WZ4y1P7Bp?spm_id_from=3

    2023年04月08日
    浏览(53)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包