了解JavaSpring

news2024/11/25 22:49:25

什么是Spring?

Spring开发方向:分布式,微服务,网站

Spring技术(全家桶):Spring Framework、Spring boot、Spring Cloud

Spring Framework(4.x)

是spring体系中最基础的项目,是其他项目的根基

core container(核心容器)

目的:管理对象的模块,充分解耦

使用时,不主动使用new产生对象,转为由外部提供对象

IoC/DI

IoC(inversion of control)控制翻转:由主动new产生对象转换为由外部提供对象

DI(dependency injection)依赖注入:在容器中建立bean与bean之间的依赖关系的整个过程

IoC容器

spring将IoC容器当作外部,来控制提供对象

IoC容器负责:对象创建,初始化……

Bean

Bean是在IoC容器被创建或被管理的对象

IoC使用(入门)

1.在pom.xml中依赖模块

 2.在resource中创建spring config文件

 3.配置bean

 bean标签:id(名字),class(定义类型),name(取别名),scope(是否为单例)

4.写main方法

public class App2 {
    public static void main(String[] args) {
        //获取IoC容器
        ApplicationContext ctx=new ClassPathXmlApplicationContext("applicationContext.xml");
        //获取bean
        BookDao bookDao=(BookDao) ctx.getBean("bookDao");
        bookDao.save();

    }
}

DI操作(入门)

1.不能出现new对象,要写set方法

public class BookServiceimpl implements BookService {
    private BookDao bookDao;
    public void save(){
        System.out.println("book service save");
        bookDao.save();
    }
    public void setBookDao(BookDao bookDao){
        this.bookDao=bookDao;
    }
}

2.写property

 name表示配置哪个具体的属性

ref表示参照哪一个bean(投入bean的id)

<bean id="bookDao" class="org.example.dao.impl.BookDaoimpl"/>
<bean id="bookService" class="org.example.service.impl.BookServiceimpl">
        <property name="bookDao" ref="bookDao"/>
    </bean>

Aop(面向切面编程)

核心内容

基础操作

实用开发

Aspect(Aop思想实现)

data access/data integration(数据访问与集成)

MyBatis

web(web开发)

test(单元测试)

Spring boot

Spring Cloud

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/844912.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

盛元广通基于信息平台的医学实验室综合管理系统

医学实验室的飞速发展&#xff0c;为医学科研、突发传染病防治、服务基层医疗等方面提供了有效助力&#xff0c;实验室注重实际应用的研究和实际问题的解决&#xff0c;实验室管理能力也在逐步迈向一个新的台阶&#xff0c;利用信息化技术手段实现对实验室开放共享的有效管理&a…

【Spring Boot】拦截器与统一功能处理

博主简介&#xff1a;想进大厂的打工人博主主页&#xff1a;xyk:所属专栏: JavaEE进阶 上一篇文章我们讲解了Spring AOP是一个基于面向切面编程的框架&#xff0c;用于将某方面具体问题集中处理&#xff0c;通过代理对象来进行传递&#xff0c;但使用原生Spring AOP实现统一的…

搭建本地开发服务器

搭建本地开发服务器 :::warning 注意 在上一个案例的基础上添加本地开发服务器&#xff0c;请保留上个案例的代码。如需要请查看 Webpack 使用。 ::: 搭建本地开发服务器这一个环节是非常有必要的&#xff0c;我们不可能每次修改源代码就重新打包一次。这样的操作是不是太繁琐…

linux文本三剑客---grep,sed,awk

目录 grep 什么是grep&#xff1f; grep实例演示 命令参数&#xff1a; 案例演示&#xff1a; sed 概念&#xff1a; 常用选项&#xff1a; 案例演示&#xff1a; awk 概念&#xff1a; awk常用命令选项&#xff1a; awk变量&#xff1a; 内置变量 自定义变量 a…

代理模式(C++)

定义 为其他对象提供一种代理以控制(隔离&#xff0c;使用接口)对这个对象的访问。。 应用场景 在面向对象系统中&#xff0c;有些对象由于某种原因(比如对象创建的开销很大&#xff0c;或者某些操作需要安全控制&#xff0c;或者需要进程外的访问等)直接访问会给使用者、或…

出现Error: Cannot find module ‘compression-webpack-plugin‘错误

错误&#xff1a; 解决&#xff1a;npm install --save-dev compression-webpack-plugin1.1.12 版本问题

十、ESP32控制1.54寸240x240彩屏幕(SPI)

1. 运行效果 2. 240x240屏幕介绍 有8个引脚,说明如下 通过SPI协议进行传送数据,用到的芯片是S

ubuntu20.04 docker 下编译 tensorflow-gpu

ubuntu20.04 安装tensorflow-gpu 配置&#xff1a; 系统 ubuntu 20.04 LTS 显卡 GTX 1060 6G 1 安装cudatoolkit &#xff08;我选 CUDA Toolkit 12.2 &#xff09; NVIDIA CUDA Installation Guide for Linux https://docs.nvidia.com/cuda/cuda-installation-guide-linux/in…

数据结构-1

1.2 线性结构树状结构网状结构&#xff08;表 数 图&#xff09; 数据&#xff1a;数值型 非数值型 1.2.3数据类型和抽象数据类型 1.3抽象数据类型 概念小结&#xff1a; 线性表: 如果在独立函数实现的 .c 文件中需要包含 stdlib.h 头文件&#xff0c;而主函数也需要包含 st…

(统计学习方法|李航)第一章统计学习方法概论七八九十节——生成模型与判别模型,分类问题,标注问题,回归问题

目录 一&#xff0c;生成模型与判别模型 二&#xff0c;分类问题 三&#xff0c;标注问题 四&#xff0c;回归问题 一&#xff0c;生成模型与判别模型 P&#xff08;X,Y&#xff09;是联合概率分布 只要是出现联合概率分布&#xff0c;就一定是生成模型 判别方法就是直接去…

【owt】erzio的handler和pipeline

【owt】erzio的PipelineBase::addService licode学习之erizo篇–Pipeline_handle 大神分析的非常细致: 大神 总结:erizo的pipeline的handler是负责实际数据处理的,通过处理链路,将之串联起来 大神还绘制了基础类图: pipleline 负责读写数据包并处理数据包 创建:static Pt…

.Net Core工作流WorkFlowCore

WorkFlowCore是一个针对.NetCore的轻量级的工作流引擎&#xff0c;提供了FluentAPI、多任务、持久化以及并行处理的功能&#xff0c;适合于小型工作流、责任链的需求开发。支持工作流长期运行&#xff0c;提供了各种持久化方式。 本篇开发环境为.Net7&#xff0c;此处不演示Js…

代码调试3:coco数据集生成退化图

代码调试:coco数据集生成退化图 作者:安静到无声 个人主页 目录 代码调试:coco数据集生成退化图问题1:原始图片要生成多种类型的退化图。问题2:输入尺寸的匹配问题。问题3:如何将缩放后的图片恢复到原始尺寸?遇到灰色图片怎么办。问题4:如何设计出端到端的的程序问题5…

uni-app离线打包高德地图导入android studio不能正常显示

本人使用的uni-app SDK版本&#xff1a;Android-SDK3.8.7.81902_20230704 1.导入以上文件&#xff0c;依赖已经自动添加了 2.确保这个正常引入 3.修改AndroidMainifest.xml,添加自己的密钥

使用gpt对对话数据进行扩增,对话数据扩增,数据增强

我们知道一个问题可以使用很多方式问&#xff0c;但都可以使用完全一样的回答&#xff0c;基于这个思路&#xff0c;我们可以很快的扩增我们的数据集。思路就是使用chatgpt或者gpt4生成类似问题&#xff0c;如下&#xff1a; 然后我们可以工程化这个过程&#xff0c;从而快速扩…

python -- 如何将nc数据中的时间转换为北京时区的时间

在nc数据处理时&#xff0c;以ERA5的小时数据为例&#xff0c;使用的时间为UTC&#xff0c;不同时区存在时间上的差异&#xff0c;如何将其转化为北京当地的时间呢? https://confluence.ecmwf.int/display/CKB/ERA5%3Adatadocumentation #!/usr/bin/env python3 # -*- cod…

uniapp 微信小程序 echarts地图 点击显示类目

效果如图&#xff1a; 在tooltip内axisPointer内添加 label:{show:true} 即可显示“请求离婚”的标题

CMU-CERT内部威胁数据集 r4.2版本介绍

CMU-CERT内部威胁数据集 r4.2版本介绍 一、相关介绍二、CMU-CERT r4.2版本内容三、重大变更 一、相关介绍 “CMU”是卡内基梅隆大学&#xff08;Carnegie Mellon University&#xff09;的简称。 “CERT”是卡内基梅隆大学的一个研究中心叫“CERT”&#xff0c;主要研究内部威…

Acwing.876 快速幂求逆元

题目 给定n组ai ,pi&#xff0c;其中p;是质数,求α;模p;的乘法逆元&#xff0c;若逆元不存在则输出impossible。 输入格式 第一行包含整数n。 接下来n行&#xff0c;每行包含一个数组ai, pi&#xff0c;数据保证p;是质数。 输出格式 输出共n行&#xff0c;每组数据输出一…

【C++】哈希开散列 | unordered系列容器的封装

文章目录 一.开散列1. 开散列的概念2. 开散列结构3. Insert 插入4. Find 查找5. Insert 扩容6. Erase 删除7. 析构函数8. 其它函数接口9. 性能测试 二.封装1. 封装内部结构2. 实现接口 三.代器器1. 迭代器的定义2. 常用接口3. 迭代器4. begin()、end()5. find的改动6. 下标访问…