Spring框架

Spring框架详解(持续更新) Mybatis Spring SpringMVC详解 阅读详情

spring框架:负责宏观调控,负责整合其他的第三方的框架

SpringMVC框架: 主要负责前后端数据的交互

Mybatis框架/MybatisPlus框架:持久层框架,简化JDBC操作数据库的方式,提高效率

SpringBoot框架: 采用了更加简化的方式封装了之前的框架,让程序更简单

 IOC介绍

IOC是一种控制反转的设计思想,由spring容器管理对象的生命周期,降低代码的耦合性。

将所有的对象都交给spring容器管理,容器负责对象的注入

 DI介绍:Dependency Injection  依赖注入

spring容器替你管理一系列需要的类,前提是你需要将这些类表示交给容器进行管理才可,然后在你需要的时候不用自己去定义,容器就会自动帮你进行实例化

实现IOC思想需要DI进行注入。

注入的方式最常用的就是@Aurowired注解,只要加上注解即可,且如果对象是接口,会自动注入实现类。如果对象过多 可以使用@Qualifier("cat")注解进行选择特点的类。且必须与@Aurowired注解同时出现才能使用。

1.spring容器管理对象:

1.1 使用XML形式配置文件管理对象。基本不咋用,一般都是注解使用更方便

Bean 元素:使用该元素定义需要spring容器管理对象

id属性:       全局唯一变量一般类型首字母小写

class属性:  class的路径信息,需要写全名

1.2 使用注解的形式进行配置管理的对象

@Bean  使用此注解进行标识是一个要提交给spring容器进行管理的对象

定义一个类,将类在配置类中进行注解@Bean 此方法还是自己进行了创建定义

1.3使用注解@component的形式进行配置管理对象(一般多用注解的形式)

@component定义在类上表示此类是一个提交给容器管理的对象。会自动实例化。

 

1.4使用@Controller @Service @Repository 形式进行配置管理对象,此方法降低了耦合度 每个表示不同的业务区域

2.定义spring配置类

 2.1 一个完整的项目需要一个专门的配置类进行管理项目内容

使用@Configuration将一个类定义为配置类,此类中专门用来各种配置

使用@ComponentScan 配置需要扫描文件的路径,将使用了@Component注解的类自动实例化

配置类中可以添加其他需要的配置注释,前两个是必用的注释

3.创建spring容器,通过容器得到内容

DI依赖注入 面向接口

定义一个接口,进行实现类。使用注解@Autowired进行依赖注入。依赖注入如果是个接口,则会将实现类自动绑定到接口上进行使用。

当一个接口有多个实现类时们可以通过@Qualifier进行选择某个类

4.工厂模式

通过工厂模式进行创建对象(万能的)可以将抽象类进行容器注入,工厂模式需要实现类 FactoryBean<Calendar(日历)>

因为是实现类所有会自动重写 getObject()   和  getObjectType() 两种方法

 getObject()  返回类型对象

 getObjectType()  返回字节码

生命周期函数自动调用

@PostConsruct 初始化注解  会在执行时进行初始化

@PreDestroy  销毁注解

单例与多例的注解@Scope

懒加载@Lazy

懒加载只会在单例模式中有效,多例模式无效。多例模式默认就是懒加载

@Lazy在使用时才会创建对象。

当用户会需要一些特殊的拦截,并且这些链接创建的时间非常长时,可以时间懒加载。

AOP切面编程 

高效创建代理对象,通过代理解决实际问题。

1.首先定义一个切面:使用注解@Aspect 标识为一个切面

再将切面提交给spring容器进行管理

 2.在配置类中使用注解@EnableAspectJAutoProxy启动AOP

3.使用注解@Pointcut进行确定需要代理的对象

有四种方法进行确定代理的类

3.1使用bean方式 bean                               指定单独的类,可以添加多个  xx,xx

3.2使用自定义注解的方式  @annotation   通过用户自定义注解进行判断

3.3使用包路径的方式  within                      通过包路径进行筛选。

3.4使用方法名的方式  execution                通过 返回值类型  包名 类名 的方法 进行判断。

 4.使用通知注解执行

常用通知有五种:

前置通知:@Before  在执行前输出

后置通知:@AfterReturning   在执行后一个输出

最终通知:@After   最后输出

异常通知:@AfterThrowing   报错异常输出

环绕通知:@Around    最常用!!可控制!! 前后都可以输出

5.注意事项:

当有两个或者多个AOP时,可以使用@Order注解进行排序输出!!

spring默认是JDK代理,想要更改为CGLIB代理 需要在启动注释中添加对应代码

 SpringBoot默认使用的是CGLIB代理。如果需要更改为JDK代理则需要修改配置文件即可

MVC:是一种设计思想,降低代码的耦合性,是页面与后端的交互思想,层级代码结构,为了很好的实现MVC思想,所以后端代码也应该分层 

View 视图层  Model业务层  Control控制层

分层说明:都可以直接提交给容器进行管理

1.控制层   Controller  与前端页面进行交互的        @Controller     

2.业务层   Service      编辑业务逻辑                      @Service

3.持久层   Mapper      实现数据库的相关操作        @Repository

MVC   >    三层代码结构    

与前端进行交互:前后的Axios交互

1.使用注解配置可以进行交互的内容

使用@Controller                           注解交给容器管理

使用@ResponseBodt                  将此类进行定义JSON转换

上俩个可以简化使用:@RestController注解        等于二合一的注解

使用@CrossOrigin                       解决跨域的问题

 2.定义网页端口号后的名字

使用注解@RequestMapping   默认为get 方法

方法类型有四种:

@GetMapping                                  限制为get方法

@DeleteMapping                             限制为delete方法

@PostMapping                                限制为post方法

@PutMapping                                  限制为put方法

Lombok 包 添加辣椒文件

关于Lomnok使用说明:

使用时需要添加jar包和安装插件 Linux服务器项目中 不需要添加

在编译器有效

 定义封装的属性在前端进行输入

使用注解@Data 可以自动生成set  get tostring 等方法

使用注解@AllArgsConstructor 添加全参构造

使用注解@NoArgsConstructor  添加无参构造

使用注解@Accessors(chain = true) 可以重写set方法 并且进行链式加载

以上为POJO文件标配注解  且必须进行实现类Serializable 序列化

3.在html中添加Axios文件。

并使用axios.get().then() 进行执行

 SpringBoot 开箱即用原理:用少量配置实现大量的功能

SpringBoot为了简化程序的测试过程,springboot针对的测试方法开发了一个注解

@SPringbootTest注解

规则说明 :

当运行@Test注解表示的方式时,程序启动

Springboot启动,内部spring容器启动  基于IOC管理对象,DI注入对象

可以在任意的测试类中注入响应的对象

@Value  赋值

使用@PropertySource注解确认文件位置 

定义properties文件 并将name属性赋值

 

 

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.1.1.RELEASE</version>
        <relativePath/>
    </parent>

    <groupId>com.lianlianpay</groupId>
    <artifactId>LLP-ACCP-Java</artifactId>
    <version>1.0-SNAPSHOT</version>

    <properties>
        <maven.compiler.source>8</maven.compiler.source>
        <maven.compiler.target>8</maven.compiler.target>
    </properties>

    <dependencies>


        <!--        支付宝支付依赖-->

        <!-- https://mvnrepository.com/artifact/com.alipay.sdk/alipay-sdk-java -->
        <dependency>
            <groupId>com.alipay.sdk</groupId>
            <artifactId>alipay-sdk-java</artifactId>
            <version>4.35.79.ALL</version>
        </dependency>

        <!--Swagger-->
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger2</artifactId>
            <version>2.7.0</version>
        </dependency>
        <!--Swagger ui-->
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger-ui</artifactId>
            <version>2.7.0</version>
        </dependency>

        <dependency>
            <groupId>commons-codec</groupId>
            <artifactId>commons-codec</artifactId>
            <version>1.11</version>
        </dependency>
        <dependency>
            <groupId>org.apache.httpcomponents</groupId>
            <artifactId>httpcore</artifactId>
            <version>4.4.10</version>
        </dependency>
        <dependency>
            <groupId>org.apache.httpcomponents</groupId>
            <artifactId>httpclient</artifactId>
            <version>4.5.3</version>
        </dependency>
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>1.2.29</version>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.18.4</version>
            <scope>provided</scope>
        </dependency>
        <!-- springboot -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <!--thymeleaf 模板依赖-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-thymeleaf</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
            <scope>runtime</scope>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-configuration-processor</artifactId>
            <optional>true</optional>
        </dependency>
    </dependencies>
    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                    <excludes>
                        <exclude>
                            <groupId>org.projectlombok</groupId>
                            <artifactId>lombok</artifactId>
                        </exclude>
                    </excludes>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>

Java必修课——Spring框架 Spring是轻量级的开源的JAVAEE框架Spring可以解决企业应用开发的复杂性Spring有两个核心部分:IOC和AopIOC:控制反转,把创建对象的过程交个Spring进行管理Aop:面向切面,不修改源代码进行功能增强Spring特点方便解耦,简化开发Aop编程支持方便程序测试方便和其他框架进行整合方便进行事务操作降低API的使用难度IOC容器IOC底层原理IOC接口(BeanFactory)IOC操作Bean管理(基于XML)IOC操作Bean管理(基于注解) 阅读详情

相关推荐

Spring核心框架完全指南 - 基础知识全解析

《Spring核心框架完全指南》摘要 本文全面解析Spring框架的核心知识点,涵盖IoC容器、AOP编程、Bean管理等核心技术。主要内容包括:1)IoC容器实现对象创建和依赖管理,通过构造器、Setter和字段注入三种方式;2)Bean生命周期管理,包括初始化/销毁方法和作用域控制;3)AOP编程实现日志、权限等横切关注点的统一处理;4)Spring注解体系详解和资源管理机制;5)事件驱动模型实现组件间松耦合通信;6)SpEL表达式语言的应用。文章通过具体代码示例和实际应用场景,系统性地介绍了如何利用S

weixin_51040479的博客 1204

spring框架--全面详解(学习笔记)

由 Spring IoC 容器管理的对象称为 Bean,Bean 根据 Spring 配置文件中的信息创建。可以把 Spring IoC 容器看作是一个大工厂,Bean 相当于工厂的产品,如果希望这个大工厂生产和管理 Bean,则需要告诉容器需要哪些 Bean,以及需要哪种方式装配 Bean。Spring 配置文件支持两种格式,即 XML 文件格式和 Properties 文件格式。

swy2560666141的博客 1万+

手写Spring框架

在学习完Spring框架之后, 我们知道了 Spring容器, IOC, AOP, 事务管理, SpringMVC 这些Spring的核心内容, 也知道了它们底层实现的基本原理, 比如Spring容器就是个Map映射, IOC底层就是反射机制, AOP底层是动态代理, SpringMVC不就是对Servlet进行了下封装嘛! 哈哈, 当然这些只是些皮毛, Spring除此之外还有更加复杂的设计, ...

Tyshawn的博客 2万+

Spring框架详解

1.Spring框架是轻量级的JavaEE框架2.Spring可以解决企业应用开发的复杂性3.Spring有两个核心部分IOC和Aop(1)IOC控制反转,把创建对象的过程交给Spring进行管理(2)Aop面向切面,不修改源代码进行功能增强4.Spring特点(1)方便解耦,简化开发(2)Aop变成支持(3)方便程序测试(4)方便和其他框架进行整合(5)方便进行事物操作(6)降低API开发难度5.Spring5one控制反转,把对象的创建和对象的调用过程交给Spring进行管理。...

m0_54853420的博客 2376

【Spring框架】Spring概述及基本应用

Spring框架优点,构建及demo

一个真ikun 2062

VTK四视图联动避坑指南:解决vtkImagePlaneWidget窗宽窗位同步与切片序号更新的那些坑

本文详细解析了VTK四视图联动开发中的关键技术点与常见问题,包括切片位置同步、窗宽窗位同步的实现原理及回调机制设计。针对开发中遇到的回调事件不触发、渲染性能低下等问题,提供了实用的解决方案和优化技巧,帮助开发者高效构建医学影像和科学可视化应用。

weixin_42638178的博客 391

什么是spring框架?spring框架到底有什么用?spring框架到底做了些什么?

什么是spring框架,spring框架究竟有什么用呢?我们可以用spring框架来做些什么呢?让我们来具体了解一下,以及经常所说的IOC和AOP是一种怎样的思想,到底是怎么实现这些思想的!

小汤圆的博客 3万+

点云入门笔记(一):点云数据及获取

点云概念: 点云是某个坐标系下的点的数据集。点包含了丰富的信息,包括三维坐标 X,Y,Z、颜色、分类值、强度值、时间等等。

wc19862274581的博客 2万+

【Spring框架】Spring框架介绍

文章目录Spring框架介绍Spring两大核心技术Spring的优点Spring体系介绍核心容器数据访问/集成Web页面其他模块 Spring框架介绍 Spring框架是分层的 Java SE/EE 应用 full-stack 全栈式轻量级开源框架,以 IOC(Inverse Of Control:控制反转)和 AOP(Aspect Oriented Programming:面向切面编程)为内核,提供了展现层 SpringMVC 和持久层 Spring JDBC 以及业务层事务管理等众多的企业级应用技术

Super_Powerbank的博客 1654

H3C防火墙旁路部署实战:网关迁移到防火墙后,如何配置DHCP和VLAN间隔离策略?

本文详细介绍了H3C防火墙旁路部署实战,重点讲解网关迁移到防火墙后的DHCP配置和VLAN间隔离策略。通过实际案例和配置示例,帮助网络工程师解决传统核心交换机架构的性能瓶颈和安全管控问题,实现精细化访问控制。

weixin_42549451的博客 416

MATLAB安装

Matlab 2016a 安装包及破解教程百度云分享链接: 链接:https://pan.baidu.com/s/1i6BgD8p       密码:17gg   Matlab安装教程: 1、下载文件,得到R2016a_win64.part1.rar、R2016a_win64.part2.rar两部分安装文件和Matlab 2016a Win64 Crack破解文件。 2、解压安装文件(解...

qq_36734094的博客 17万+

spring框架介绍_Spring框架介绍

spring框架介绍 这是Spring框架和Spring核心概念的简介。 在本教程中,我们将介绍Spring Framework的主要优点和功能。 在随后的教程中,我们将学习有关Spring和Spring Boot的更多信息。 总览 我们知道, Spring框架是Java开发人员中最受欢迎的应用程序框架。 Spring以为Java 几乎可以完成的所有工作提供抽象和基础结构框架而闻名。 在较...

最佳 Java 编程 1309

Skyworks SKY85331-11的Wi-Fi 6 (802.11ax)标准 2.4G 高功率WLAN前端模块解决方案

SKY85331-11是高度集成的2 GHz前端模块(FEM)包含2 GHz单刀双掷(SPDT)发送/接收(T / R)开关,2 GHz低噪声放大器(LNA)带旁路和一个2 GHz功率放大器(PA),用于大功率802.11ax应用程序和系统LNA和PA禁用功能可确保低漏电流 关闭模式。 包括一个集成的功率检测器以提供系统内的闭环功率控制。该设备提供Small (24-pin, 3 x 5 mm) (LGA)封装。 图1.引脚配置和封装如图所示 图2.信号引脚分配和功能引脚描述 图...

zhangbao19890622的博客 4505

重学Spring框架系列之——什么是Spring框架

说在前面 Spring框架算得上是java程序员必备的一项技能了。不论是早期的SSM或SSH架构,还是现在流行的SpringBoot加SpringCloud构建的分布式、微服务架构。Spring在其中扮演着不可或缺的角色,其重要性也是不言而喻的。 为了更好的工作和自身的提升,菜鸟又重新学习了一下Spring框架,在学习的过程中也有一些收获,从而想着通过文章将自己的学习过程记录下来。也希望可以帮助到有需要的人。如果文章中存在不合理或错误的地方也希望大家可以提出来,我会及时改正,希望我们可以一起进步。 既然我们

first_M的博客 590

让 IF 更好读:在 ABAP 里尽量使用正向条件的实战指南

摘要:SAP系统开发中,代码可读性与可维护性的关键往往在于条件判断的写法。Clean ABAP风格指南建议尽量采用正向表达的条件判断,如使用has_entries = abap_true而非否定式写法。正向表达能降低理解成本,避免"否定的否定"带来的逻辑混乱,但不应为追求正向而制造空分支。在团队协作中,正向条件更利于代码评审和测试覆盖,建议通过工具检查和智能评审确保规范执行。落地时可关注变量命名正向化、避免空分支、主流程清晰展开等要点,以提升长期维护效率。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 246

计算机网络基础:揭开网络世界的神秘面纱

计算机网络基础:揭开网络世界的神秘面纱,计算机网络已深度融入现代生活,这篇文章对其基础内容展开全面阐述。开篇介绍计算机网络的定义,说明其由计算机设备、网络设备和传输介质构成。接着从地域范围和拓扑结构两个维度对计算机网络进行分类,并详细讲解 OSI 和 TCP/IP 参考模型,明晰各层功能与联系。随后阐述网络通信协议的定义及常见协议,如 TCP/IP、HTTP 等。最后聚焦网络安全,涵盖定义、重要性以及防火墙、加密技术等常用安全技术。文章旨在帮助读者构建计算机网络基础知识体系,理解其在生活和工作中的应用与价值

不踩坑,不知道坑有多深;不总结,踩过的坑白踩。 6万+

spring框架_Spring框架介绍

spring框架 这是Spring框架和Spring核心概念的简介。 在本教程中,我们将介绍Spring Framework的主要优点和功能。 在随后的教程中,我们将学习有关Spring和Spring Boot的更多信息。 总览 我们知道, Spring Framework是Java开发人员中最受欢迎的应用程序框架。 Spring以为Java几乎可以完成的所有工作提供抽象和基础结构框架而闻名。 ...

cunhui1209的博客 205

HDOCK 蛋白蛋白对接软件使用;LZerD、pyDock、ClusPro网页在线对接

参考:hdock支持蛋白与蛋白,也支持蛋白与核酸对接计算。

weixin_42357472的博客 1万+

如何下载Spring框架

首先进入Spring官网:https://spring.io/ 点击PROJECTS   找到SPRING FRAMEWORK 并点击  因为是托管在github上的,所以点击github标志  找到Spring Framework Artifacts 找到Spring仓库连接  点击Artifacts选项 然后找到菜单下的 libs-release-local...

liutao2001的博客 2万+

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

【Spring框架一】——Spring框架简介

Spring框架最初是由Rod Johnson在2002年创建的,其主要目的是为了解决企业应用程序开发中面临的一些常见问题。下面主要是对于Spring框架的介绍包括什么是Spring框架?Spring框架解决了什么问题?Spring是基础设施和服务,Spring Boot是基于Spring构建的快速开发框架,Spring Cloud是基于Spring Boot构建的分布式系统框架。开发人员可以根据自己的需要选择使用Spring、Spring Boot或Spring Cloud。

理想主义的花最终会盛开在浪漫主义的土壤里,我的热情永远不会熄灭在现实的平凡之中,我们终将上岸,阳光万里。 4019

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

上一篇: JAVA中的抽象类
下一篇: spring项目中添加Aspect依赖注解
辣椒太少不适合吃
博客等级 码龄5年 2691粉丝 88原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值