- 博客(34)
- 资源 (1)
- 收藏
- 关注
原创 bean的自动装配
自动装配:意思就是spring会在上下文中自动寻找,并自动给bean装配属性解释:我们之前在spring的配置文件里,写bean的配置的时候,是不是那些属性的注入都是我们手动去注入的,那么现在spring就可以帮我们去自动给bean注入属性在spring中有3中装配的方式:1. 在xml中显示的手动配置【这个在之前是不是一直都在用这种方式】2. 在java中显示的手动配置【就是不用再写xml配置文件了,但是要写一个java的config了,其实更麻烦了】3. 隐式的自动装配bean
2022-08-22 01:05:44
753
原创 Bean的作用域
1.singleton【单例模式】单例作用域:就是创建的所有对象仅仅只有一个,你无论拿几个,或者是起别名去拿,它始终用的都是这一个实例单例作用域是一个默认的可以看到,虽然我们拿出来的对象它是多个,即从我们使用者的角度来看,一个user,一个user2,但是我们看到下面,这两个对象是同一个对象2.原型模式【prototype】就是当你在bean标签内加上这个scope属性之后,并且选择为prototype,那么每一个bean创建,他都是一个单独的对象,每次从容器中...
2022-02-21 23:45:34
176
原创 依赖注入(DI)
解释一下依赖注入:依赖:bean对象的创建依赖于spring容器注入:bean对象中的所有属性,也就是成员变量,由spring容器来注入也就是说,spring管理对象,是全方位的管理,既包括了创建对象,又包括了将你创建的对象注入到其他创建的对象中使用(前提是要注入引用类型对象,至于基础类型的注入也是同样的道理,只不过是注入时用的属性名字不同而已,说白了就是ref与value的区别),就不必像以前的组合方式去引入其他类的对象了构造器注入:我们前面讲过IOC创建对象的方式,1中默认的无参
2022-02-17 00:28:07
2847
原创 spring配置说明
1.别名,alias标签就是在spring容器中托管的对象,id这个属性是不是就代表的对象名称啊,那么这个alias标签,就可以将我们bean对象标签中的id属性的名称,替换为另一个名字,使用这个别名去容器中获取对象,依然可以获取到对象2.bean的配置,bean标签可以看到bean标签中也有name别名属性,而且相较于alias别名标签,它可以同时起多个别名,而且分隔符可以是空格,可以是逗号,可以是分号3.import,import标签这个impor...
2022-02-14 23:36:21
297
原创 IOC创建对象的方式
看看spring到底是怎么创建对象的!思考一下:为什么spring管理的bean,我们可以直接get到,它肯定得new出来之后才能get到吧。得想一下,spring是在什么时候new的!演示:创建一个实体类,默认会有一个无参构造,我们把它写出来,在里面再加上句话我们知道在Java中,java对象要能够使用,那么他就必须得new出来...
2022-02-11 01:53:59
1219
2
原创 面向对象编程
面向过程编程(POP),是一种以过程为中心的编程思想,实现功能的每一步,都是自己实现的我们先回顾一下面向过程:之前编程都是写一个main方法,程序从上到下都是依次执行,是一个顺序结构,是一个线性思维,面向过程适合处理一些简单的问题,就比如要造一栋高楼,你要做钢筋工,又要做水泥工,呈现出的结果就是一个人要做很多复杂的工作,成本很高面向对象编程(OOP),是一种以对象为中心的编程思想,通过指挥对象实现具体的功能面向对象介绍:面向对象是一种分类的思维,同样是造楼,面向对象的意思是,会找一个
2022-02-09 01:13:09
260
原创 java方法详解
java方法:(method)是将具有独立功能的代码块组织成为一个整体,使其具有特殊功能的代码集,并且能实现达到代码复用的效果java方法包含于类或对象中(在面向对象的时候我们就知道,其实类和对象是一个东西,只不过类是作为模板,而对象是根据这个模板具体创建出来的东西而已,所以这里可以解释为方法可以存在于类或对象中)java方法在程序中被创建,在其他地方被引用设计方法的原则:方法的本意是功能块,就是实现某个功能的语句块的集合,我们设计方法的时候,最好保持方法的原子性,就是一个方法只完成一个
2022-01-12 00:02:09
9532
原创 HelloSpring
1.第一步:先导入相应的依赖我们就导spring-webmvc这个依赖,导入这个依赖之后,它还会自动帮我们导入其他的一些依赖,比如说我们今天要用到的spring-context,即上下文对象第二步:写个实体类:注意这个实体类就是帮助我们验证spring的IOC理念的,不是必要步骤第三步:编写配置文件在spring容器中要配置一些其他形式的元数据信息:spring 2.5之前需要使用xml文件的一些元数据,3.0之后可以使用一些注解(先说xml配置)所以要去官.
2022-01-08 17:26:49
213
原创 IOC理论推导和本质
首先我们要知道IOC是一种思想!我们原来要写一个业务要怎么实现啊?1.UserDao接口2.UserDaoImpl实现类3.UserService业务接口4.UserServiceImpl业务实现类现在去写一下,看看会有什么问题:1.UserDao接口2.UserDaoImpl实现类3.UserService业务接口4.UserServiceImpl业务实现类我们现在是不是要业务层调用Dao层了,怎么调,是不是有一个组合的概念,除了继承是不是...
2022-01-06 11:04:01
458
原创 spring简单介绍
spring说白了就是解决企业应用开发的复杂性的!spring理念: 使现有的技术更加容易使用,本身是个大杂烩,整合了现有的技术框架!优点:spring是一个开源的免费的框架 spring是一个轻量级的,非入侵式的框架 !(轻量级:说明他本身很小。非入侵式:就是引入了spring,不会改变你原来代码的任何情况,反而你用了它会更加简单) 控制反转(IOC)、面向切面编程(AOP) 支持事务的处理 对框架整合的支持(即几乎市面上所有的java框架它都能整合进去,所以说spring框架是一个大
2022-01-05 13:32:49
598
原创 通过jedis再次理解事务和乐观锁
首先要知道,我们开启事务的命令是multi,在jedis操作中就是去jedis.multi,这样就得到了我们的事务的对象,我们事务中命令入队操作,就是利用我们这个对象去调方法就可以了其次我们要知道,事务的操作如果失败了,是不是要回滚操作啊,所以这种代码块都是要搭配try catch finally去进行操作的:在finally中关闭客户端,如果抛异常了在catch中放弃事务,我们先来显示下正常执行的事务操作:再来演示下事务有问题的情况:首先说明一点,之前说过,事务执行..
2022-01-04 01:57:40
517
原创 redis实现乐观锁
我们先介绍一下悲观锁和乐观锁:我们要知道我们java程序去做的时候是一定会去加锁的,比如说我们多条线程在并发执行的时候,一定会去加锁的悲观锁:顾名思义,很悲观,就是认为什么时候都会出问题,无论干什么都加锁!所以说这种操作是非常影响性能的,比如说sychronized默认就是这样,无论干什么都会去加锁,用完之后再去解锁!乐观锁:顾名思义,很乐观,认为什么时候都不会出现问题,所以不会加锁!那不上锁,总得有个机制去处理并发这个问题,那这个时候,就会在更新数据的时候去判断一下,在此期间,是否有人去改动过这个
2022-01-01 16:18:14
3212
原创 redis基本的事务操作
事务,我们知道,就是ACID!最重要的一句话就是:要么同时成功!要么同时失败!(原子性),在关系型数据库中,非常重要!但是在redis的事务中是没有这个原子性的!redis单条的命令是保证原子性的!redis事务的本质:就是一组命令一块执行!比如说:我们把很多很多的命令,正常的话,比如说set一个值,再set一个值,依次类推,就有很多命令,它是一条条都会执行的,现在我们把它放在一个块儿,把这块的命令一次性执行,它就会有一个入队的过程,它就相当于队列,它就会把每一条命令都往这个队列里面放,放好之后
2022-01-01 10:22:55
424
原创 集合-01
1.Collection集合我们现在先来思考一个问题:如果我现在想同时存储多个元素,我们该如何?那我们用之前学习过的知识点,我们是不是知道数组可以干这件事情,集合是不是也同样的可以干这件事情啊,我们学习一下数组和集合的区别:我们定义一个长度为3的数组,那么现在我有4个元素要往里面存,前3个元素没有任何问题,第四个元素是不是就尴尬了呀,那为什么第四个元素会尴尬呀,其实就是数组的特点导致的,因为数组的长度是不可变的,那我换成集合,我这里还是换成长度为3的集合,还是要来存储4个元素,前面3个元素还是没有任
2021-12-12 16:25:57
271
原创 redis集群
4.集群cluster现状问题:业务发展过程中遇到的峰值瓶颈 redis提供的服务OPS可以达到10万/秒,当前业务OPS已经达到10万/秒 内存单机容量达到256G,当前业务需求内存容量1T 使用集群的方式可以快速解决上述问题 4.1 集群简介集群就是使用网络将若干台计算机联通起来,并提供统一的管理方式,使其对外呈现单机的服务效果(多个主从连接在一起)集群作用: 分散单台服务器的访问压力,实现负载均衡 分散单台服务器的存储压力,实现可扩展性.
2021-11-27 16:48:59
1622
原创 redis哨兵模式
3.哨兵模式3.1 哨兵简介3.1.1 哨兵概念首先我们来看一个业务场景:如果redis的master宕机了,此时应该怎么办?那此时我们可能需要从一堆的slave中重新选举出一个新的master,那这个操作过程是什么样的呢?这里面会有什么问题出现呢?要实现这些功能,我们就需要redis的哨兵,那哨兵是什么呢?哨兵哨兵(sentinel) 是一个分布式系统,用于对主从结构中的每台服务器进行监控,当出现故障时通过投票机制选择新的master并将所有slave连接到新...
2021-11-26 23:17:24
700
原创 redis主从复制
2.主从复制2.1 主从复制简介2.1.1 高可用首先我们要理解互联网应用因为其独有的特性我们演化出的三高架构 高并发 应用要提供某一业务要能支持很多客户端同时访问的能力,我们称为并发,高并发意思就很明确了 高性能 性能带给我们最直观的感受就是:速度快,时间短 高可用 可用性:一年中应用服务正常运行的时间占全年时间的百分比,如下图:表示了应用服务在全年宕机的时间...
2021-11-26 01:28:29
82
原创 Json 哈酷酷
JSON(JavaScript Object Notation):是一种轻量级的数据交换格式。说白了它就是一个特殊格式的字符串, 它是基于 ECMAScript 规范的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。 简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。易于人阅读和编写,同时也易于计算机解析和 生成,并有效的提升网络传输效率。 也就是说我们的这些数据如果想在网络之间进行传输的话,那么我们就可以采用特殊格式的字符串,因为字符串在传输起来,效率还是很高的
2021-09-01 05:40:33
79
原创 JSON的处理
JSON回顾 JSON(JavaScript Object Notation):是一种轻量级的数据交换格式。 它是基于 ECMAScript 规范的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。 简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。易于人阅读和编写,同时也易于计算机解析和生成,并有效的 提升网络传输效率。 创建格式 常用方法 JSON转换工具的介绍 我们除了可以在 JavaScript 中来使用 JSON...
2021-09-01 05:32:02
124
原创 RestTemplate
• Spring提供的一种简单便捷的模板类,用于在 java 代码里访问 restful 服务。• 其功能与 HttpClient 类似,但是 RestTemplate 实现更优雅,使用更方便。RestTemplate是基于上面三个请求工具底层的一个模板,也就是说你要使用的时候,底层是选择上面哪个执行引擎,也就是说它本身并不具备请求HTTP服务的能力如果我们在项目中使用resttemplate,是用RestTemplate restTemplate = new ...
2021-09-01 05:01:23
355
原创 日志技术(哈酷酷么塔塔)
日志体系结构和Log4J【理解】 体系结构 入门案例【应用】 使用步骤 导入log4j的相关jar包 编写log4j配置文件(名字必须为log4j.properties,不然就错了 ) 在代码中获取日志的对象 按照级别设置记录日志信息 代码示例 // log4j的配置文件,名字为log4j.properties, 放在src根目录下log4j.root...
2021-08-18 00:04:44
141
原创 单元测试(哈酷酷么塔塔)
1.单元测试1.1概述【理解】JUnit是一个 Java 编程语言的单元测试工具。JUnit 是一个非常重要的测试工具1.2特点【理解】 JUnit是一个开放源代码的测试工具。 提供注解来识别测试方法。 JUnit测试可以让你编写代码更快,并能提高质量。 JUnit优雅简洁。没那么复杂,花费时间较少。 JUnit在一个条中显示进度。如果运行良好则是绿色;如果运行失败,则变成红色。 1.3使用步骤【应用】 使用步骤 ...
2021-08-17 22:50:12
247
原创 Spring @Async 注解的使用以及原理(一)
Spring中用@Async注解标记的方法,称为异步方法,它会在调用方的当前线程之外的独立的线程中执行,其实就相当于我们自己new Thread(()-> System.out.println("hello world !"))这样在另一个线程中去执行相应的业务逻辑。本篇先只讲@Async的使用,后面会分析它实现原理。@Async注解使用条件:1.@Async注解一般用在类的方法上,如果用在类上,那么这个类所有的方法都是异步执行的;2.所使用的@Async注解方法的类对象应该是Spring容
2021-08-10 22:03:05
679
2
原创 反射(哈酷酷)
2.反射2.1反射的概述【理解】 反射机制 是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法; 对于任意一个对象,都能够调用它的任意属性和方法; 这种动态获取信息以及动态调用对象方法的功能称为Java语言的反射机制。 可能看着比较费劲,我们举个例子来解释一下:比如说现在有一个student类,里面有两个私有化的成员变量,name和age,以及有一个public修饰的study方法,和private修饰的sleep方法,按照我们之前常用的,搞一个测试类,测试类中创建一..
2021-08-08 12:19:48
84
原创 通过 java.util.Collections.synchronizedList(List list) 方法,获取一个线程安全的 List 实例对象
前言Java 中 ArrayList 和 LinkedList 都不是线程安全的,但可以通过 java.util.Collections.synchronizedList(List list) 方法,获取一个线程安全的 List 实例对象。设计意图将非线程安全 List 对象,封装成一个线程安全的 List 对象,处理 List 上的并发性问题。类似一个工具类,减少开发人员的重复性工作。线程安全测试用例1.定义个 Obj 类,内部使用一个 Collections.synchronizedLis
2021-08-07 12:36:17
535
原创 JDBC01
JDBC-01-授课笔记一、JDBC快速入门1.jdbc的概念JDBC(Java DataBase Connectivity,java数据库连接),说白了,就是通过咱们的java程序连接数据库的,是一种用于执行SQL语句的Java API,可以为多种关系型数据库提供统一访问,它是由一组用Java语言编写的类和接口组成的。2.jdbc的本质 其实就是java官方提供的一套规范(接口)。用于帮助开发人员快速实现不同关系型数据库的连接! 3.jdbc的快速入门程序...
2021-08-06 01:59:04
212
原创 maven
1.Maven简介1.1 Maven是什么在学习Maven之前,我们先来看一下我们现在做的项目都有哪些问题。假设你现在做了一个crm的系统,项目中肯定要用到一些jar包,比如说mybatis,log4j,JUnit等,除了这些之外,你有可能用到你的同事开发的其他的东西,比如说别人做了一个财务模块或做了一个结算的模块,你在这里边有可能要用到这些东西。假如有一天你们的项目中mybatis进行了一个升级,但是它内部使用的JUnit没有升级,你升级以后的mybatis假如要用5.0的JUnit,
2021-08-04 23:22:14
245
原创 GIt操作
1.Git介绍它是一个代码的版本控制系统,1.1版本控制(理解)无论是代码编写,还是文档编写,我们都会遇到对文档内容反复修改的情况在修改的过程当中,这里面的每一版都是不敢删除的,因为有可能你的负责人会告诉你,你之前有个版本写的还行,就用那个了,如果说你只保留了最后一版,前面的版本都删除掉了,那么这个事就悲剧了,普通的文档我们需要做版本控制,同样我们编写的代码也需要做版本控制,为什么呢?我们下来先介绍一下开发中麻烦的事情1.2开发中存在的问题(理解)程序员小明负责的模块就要完.
2021-08-03 01:15:42
689
原创 spring 02 IOC 注解开发
什么是注解驱动注解启动时使用注解的形式替代xml配置,将繁杂的spring配置文件从工程中彻底消除掉,简化书写注解驱动的弊端 为了达成注解驱动的目的,可能会将原先很简单的书写,变的更加复杂 XML中配置第三方开发的资源是很方便的,但使用注解驱动无法在第三方开发的资源中进行编辑,因此会增大开发工作量 常用注解启动注解功能启动注解扫描,加载类中配置的注解项(如果不写这个注解驱动,那么我们写的注解将不被识别) <context:component-sca..
2021-08-02 20:06:00
90
原创 spring 01 IOC xml 配置
IoC入门案例制作步骤-1导入spring坐标(5.1.9.release)<dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>5.1.9.RELEASE</version></dependency>IoC入门案例制...
2021-08-01 11:31:20
134
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人