自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(114)
  • 收藏
  • 关注

原创 rocketMQ消息中间件的使用

rocketMQ

2022-12-29 16:17:38 158 1

原创 谈谈Spring中常用的注解

目录扫描包配置注入功能值注入组件注入单元测试引入依赖​注解是开发中很省事的一种开发方式,使用注解来注册组件,设置了一个包目录,找到所有的类,遍历,是否包含组件注册功能的注解扫描包配置类上使用组件注册功能的注解@Component@Service@Repository@Controller(SpringMVC阶段才会去使用)可以使用注解的value属性指定组件id;如果没有使用value属性,默认的组件id是类名的首字母小写注入功能只..

2021-09-22 21:36:07 199

原创 shrio安全框架

目录认证器​授权器SessionManager 会话管理器认证授权信息是在session中。principal中realm提供两个方法执行认证执行授权这些已经提供了,获得授权认证基本上没有提供,认证成功后会通过SessionManager管理principal,princcipal是包含在session里面的可以配置认证器授权器,也可以使用默认的认证器和授权器,realm才是核心开发导入依赖认证器授权器后续整合...

2021-09-18 21:46:25 180

原创 如何使用springMVC实现文件上传

在javaee中使用文件上传是件很繁琐的事情,那么如何在springMVC的帮助下简化流程呢?接下来带大家使用下引入依赖注册multipartResolver组件给dispatcherservlet使用,使用过组件id来使用组件,这里需要用到特定的组件id(只能使用这个id值)----multipartResolver构造请求配置handler...

2021-09-17 15:31:36 139

原创 使用SpringBoot整合MyBatis

目录引入依赖dataSource配置扫描包配置引入依赖dataSource配置SpringBoot会帮我们自动注册DataSource组件,但是注册组件过程中的值需要我们提供我们在SpringBoot的配置文件中提供properties配置文件:key=value我们在这里就需要特定的key来为注册默认的datasource组件提供参数提供的这些值会在自动配置的过程中注册组件,注册组件过程中就会使用到我们配置文件中提供到的那些值扫描包配置..

2021-09-13 21:06:42 76

原创 如何使用SpringBoot

SpringBoot是对Spring框架的进一步简化,它的核心思想就是“约定大于配置”,什么意思呢?就是说,你可以给我依赖、jdk版本等进行设置,但是如果你不设置的话我也有默认的属性,但是一旦你配置了,默认的属性就失效了,这是很重要的一个思想。能给你提供配置的就不让你自己去配置。SpringBoot是依托于配置类来实现的,所以接下来我们探索下它的使用方法吧。目录Starter依赖引入依赖实现约定大于配置,注册一些默认的组件 → 自动配置类 AutoConfiguration(实际就是.

2021-09-13 20:41:46 196

原创 Spring中的JavaConfig

什么是JavaConfig、通过注解和配置类完成Spring的相关配置Spring配置都做了什么? 注册组件、其他配置(扫描包配置、properties配置文件加载、aspectj注解开关、事务注解开关)目的:干掉配置文件 application.xml目录配置类注册组件扫描包配置事务注解驱动单元测试加载配置类properties配置文件加载(了解)aspectj注解开关配置类替代的application.xml要在配置类中注册组件 其他配置@C..

2021-09-12 23:00:23 661

原创 Spring框架中tx(事务)的三个核心接口

目录PlatFormTransactionManagerTransactionStatusTransactionDefinition传播行为PlatFormTransactionManager平台事务管理器Spring要管理事务,必然要使用平台事务管理器DataSourceTransactionManager:mybatis如果使用spring管理事务的话要使用的管理器HibernateTransactionManager:这个是Hibernate持久层框架用的接口之

2021-09-12 22:10:44 307

原创 Spring整合Mybatis

引入依赖注意:mabitis的依赖只要引入3.4.6以上版本就可以了新建mybatis配置文件然后创建接口和映射文件、新建数据库完成以上后我们来进行查询操作,在测试类写如下代码使用以上方法去操作太繁琐,所以接下来我们使用Spring来帮助我们管理这些组件Spring依赖搭建Spring环境熟悉脉络后我们就可以注册组件了注册组件原先mybatis并未考虑到spring的整合,是通过建造者方式建造出来的,而不是通过直接调用构造方法构造出...

2021-09-12 21:45:40 97

原创 如何在idea中使用Git

目录直接打开远程仓库的文件使用git在idea中使用bash命令行(推荐)ignore直接打开远程仓库的文件git clone + open project使用git这样就从工作区到暂存区了在idea中使用bash命令行(推荐)ignore工作区根目录.gitignore哪一部分文件不管理songge.txt ???? 单个文件target/ ???? 目录*.class ???? 某一类注意:已经管理的文件,忽略管理...

2021-09-12 15:34:27 62

原创 如何使用Git(二)

版本回退如果我们在开发过程中遇到了不可解决的错误,那么我们可以考虑回退到它的初始状态去重新开发。接下来我们介绍下如何从暂存区回退到工作区以及工作区产生的变化回退到原先状态谨慎操作:一旦回退,再也找不回,远程仓库不回退工作区产生的变化 ???? 回退为原先的状态命令:git checkout适应场景:大规模写了很多代码,分布在不同地方,一个个去删除很繁琐的时候使用条件:在执行add之前,变化还在工作区的时候,可以回退工作区提交到暂存区的变化 ???? 回退到工作区变化已经提

2021-09-12 11:44:45 67

原创 如何使用Git(一)

Git是版本控制工具,可以通过它来push/pull我们的远程仓库,进而维护我们小组成员共同开发的代码目录第一步 安装GitGit配置直接找到配置文件直接修改使用命令修改教你使用Git命令initclonestatusaddcommitpushlog命令pull冲突第一步 安装Git无脑Next 下一步就可以Credential manager √ 要不要保存你的用户名密码,否则每一次提交的时候,都要输入用户名和密码...

2021-09-11 22:35:29 247

原创 如何使用码云(Gitee)

创建远程仓库上面的初始化仓库是需要勾选的,它生成的.gitignore是做忽略管理的配置文件,Git默认跟踪工作区的全部文件,但是字节码文件.class以及target目录下的文件都是不需要的,那么这时候就可以使用gitignore去忽略掉开源许可证可以选择,仅供学习和个人使用、不可以用于商业用途、用于商业...

2021-09-11 15:03:53 371

原创 简单谈一谈什么是Git

Git是一个基于时间线去进行操作的版本控制工具它有个很重要的功能就是可以回滚它是分布式版本控制工具与之对应的是SVN 是集中式的版本控制工具分布式版本控制工具Git分布式有额外的一块空间记录它的文件变化,这样一部分空间不需要网络连通这里要说明下我们能看到的只有工作区,那么暂存区和本地仓库是一个抽象空间,只有通过命令去进行操作,体现在工作区产生变化,工作区管理的是内容的变化设置暂存区是为了防止在进行提交过程中不想继续了方便回退交互的是变化,提交的内容少,速度快,服务器压力也不会很

2021-09-10 23:53:05 87

原创 SpringMVC项目如何搭建

创建maven工程后引入依赖(在上篇文章中有详细介绍)DispatcherServlet配置在main/webapp/WEB-INF/web.xml文件中配置详解SpringMVC配置文件的配置也就是application.xml的配置先进行扫描包的配置而且我们还要引入新的标签 mvc的注解驱动-----mvc:annotation-driven:注册一些必要的组件、增加了对Json的支持、转换器校验器的配置注册Controller组件并且在组件中...

2021-09-09 21:15:12 84

原创 SpringMVC在maven工程中需要引入的依赖包

这里spring-webmvc是5+2+1就是Spring的5个核心包 一个web一个是webmvc包 1是jcl日志包引入servlet-api(scope=provided) 编译的时候需要,而打包、运行的时候不需要是因为tomcat包含了这些servlet-api字节码文件,如果重复引入的话就会引发一些冲突引入Jackson-databind(json支持) ???? databind、annotations、core需要的话可以在下面拷贝走<dependencie..

2021-09-08 23:46:05 3453

原创 说下Spring框架中Aspect注解的使用方法吧

目的:将我们aspectj使用aspect的这种形式使用注解和类表达出来,干掉aop:aspect标签打开注解开关<aop:aspectj-autoproxy/>如果不使用注解的话我们是做了如下的步骤指定了切面组件切入点配置指定切面组件中方法使用什么通知方法(通知)通知方法对应的切入点或切入点表达式returning和throwing指定形参来接收委托类方法执行结果或抛出的异常那么接下来我们就使用注解的方式对以上操作一一进行对应替换指定切面组件..

2021-09-08 20:16:46 339

原创 详解Spring框架AOP中的AspectJ(实战篇)(二)

通过<详解Spring框架AOP中的AspectJ(实战篇)(一)>的学习我们知道了AspectJ中的aspect是自定义通知,那么我们接下来引入Aspectj的aspect(切面)pointcut + adviceaspect给我们提供了一些通知:通知是在什么时间做什么事情,做的事情是我们自己写的,但是aspect给我们提供了时间而上面的advice主要是我们自己去写一个自定义的通知然后去实现了methodInterceptor的这样的接口Aspect这也是我们后面常规.

2021-09-08 17:58:53 209

原创 详解Spring框架AOP中的AspectJ(实战篇)(一)

首先说一下这个AspectJ出现的原因,在AspectJ之前我们可以使用SpringAOP来实现功能如下图所示,但是我们也面临着一些缺陷,就是它注册代理组件、取出方法的指定并不那么灵活,而AspectJ在注册过程中不需要一一指定委托类组件,取出过程中也不需要指定组件id,接下来我们详细介绍下它的使用方法目录Pointcut切入点表达式execution@annotationPointcut切入点是指指定增强的方法(必须是容器中的组件方法)切入点的表达式需要在配置文...

2021-09-08 17:17:11 738

原创 SpringIoc小练习引发的思考

如果我们使用的是有接口实现的组件是可以使用jdk动态代理,但是如果容器中没有接口实现的组件我们使用jdk动态代理就会报异常,那么我们可以结合cglib动态代理一起进行实现,这样我们就可以对容器中的所有的组件进行增强。那么我们可以使用判断来判断是否有接口实现代码如下这里也就有了我们接下来要介绍的aop的影子,aop说通俗了就是增强,如果有接口实现的话就使用jdk动态代理进行增强,如果没有接口实现的话就使用cglib进行增强。...

2021-09-07 23:04:02 71

原创 SpringIoC小练习

写几个不同的bean (实现同一个接口),每个bean里有这些接口的不同实现方法。 通过spring 使得调用任何一个实现方法之前和之后都增加一些log。(通过PostBeanProcessor实现)举个例子:比如有几个类Cat、Dog、Tiger,这几个类中分别有miao、wang、wuuu这几个方法,那么从容器中取出组件,调用这几个方法的时候(注意不是容器初始化时),miao、wang、wuuu这几个方法执行之前都会输出hello,执行之后都会输出world提示:生命周期 动态代理 注意:是..

2021-09-07 22:51:27 141

原创 Bean作用域、生命周期

Bean的作用域singleton:组件在容器中以单例的形式存在。组件默认的作用域就是singleton。最常用的prototype:原型。每一次取出都是一个全新的组件,每一次取出都实例化注册组件通过查看内存地址判断是否为同一实例,这里看出prototype每次取出的都不是同一个组件生命周期什么是生命周期,为什么要使用生命周期?容器中的组件的生命,产生开始到容器关闭时候经过哪一些方法?容器中的组件要到达一个可用状态,可以依赖注入了(可以从容器中取出了)最终是要使.

2021-09-06 20:44:15 51

原创 Spring框架中注解的用法

这里要介绍下很重要的一个东西,注解。可以帮助我们节省很多事情,因为使用bean标签去注册组件过程还是很繁琐的除了实例工厂外我们都有使用到class属性,实例工厂用的是factory-bean,factory-method☆☆☆☆☆注解在说注解之前还是要强调下Spring的核心是什么?控制反转和依赖注入!注册组件之前是写了个bean标签进行注册(解耦到配置文件中)注解方法:设置个包目录,使用注解来注册组件,设置了一个包目录,找到所有的类,遍历,是否包含组件注册功能的注解扫描包配.

2021-09-06 20:42:35 300 2

原创 介绍下Spring的核心接口、容器中Bean的实例化

目录Spring的核心接口ApplicationContext接口BeanFactory接口Spring容器中Bean的实例化构造方法无参构造方法有参构造方法​工厂静态工厂实例工厂FactoryBean→使用工厂方法Spring的核心接口ApplicationContext接口继承了BeanFactory并且提供了加载资源文件的方法ApplicationContext其实就是一个容器,ApplicationContext的实例其实就是容器对象,

2021-09-05 22:50:18 495 1

原创 浅谈spring框架的IoC容器和DI依赖注入(一)

前言:spring框架的核心就是控制反转和依赖注入,本章会详细介绍下spring的IoC容器的工作原理(本文只是针对技术进行展开,不做扫盲,如有疑惑可私信本人单独求助)Spring框架控制就是指实例的生成权,反转就是控制权由应用程序反转给spring,也就是把这些实例统一的交给Spring来管理,管理过程中主要也是以单例存在,如果需要用到的话再通过依赖注入取出来。介绍两个概念:容器:Spring管理实例的地方组件:Spring管理的这些实例接下来以两个案例帮助我们快速理解S...

2021-09-05 21:35:19 228

原创 如何配置在idea中配置Spring的schema模板

前言---基于maven工程这里新增一个模板,后缀改为xml,文件名自己随便起,然后点击apply--ok就可以了

2021-09-05 18:11:17 636

原创 如何获取设计模式中动态代理的字节码文件

目录保存jdk动态代理的字节码文件保存cglib的字节码文件获取字节码文件的目的主要是为了解惑,知道jdk动态代理必须使用委托类接口接收,知道cglib动态代理可以使用委托类来接收,查看编译后的源码后才知道为什么,这就做到了一个知识的闭环。默认的字节码文件并没有保存下来。保存jdk动态代理的字节码文件使用main方法来生成,因为main方法可以方便配置workingdirectory执行main方法后会生成Application,main方法实际上就是一个应用程序,接下.

2021-09-04 22:28:25 424 2

原创 浅谈设计模式-----代理模式proxy

代理模式是spring框架中很重要的一种设计模式,分为静态代理和动态代理,静态代理主要作为帮助理解动态代理的运行机制,而动态代理模式又分为jdk动态代理和cglib动态代理。接下来,让我们走进设计模式吧!静态代理解释:java中的代理可以这么理解,是在委托类的基础上做了“增强”。案例引入:sun没时间去买早餐委托tom去帮忙买,而tom请了个代理人raj来帮忙做这件事,那么代理人除了执行tom的买早餐操作还附加了其他的操作,比如tom可以设置代理多买一根烤肠。那么代理人raj就会去买早餐再买.

2021-09-04 17:40:06 101

原创 ServletRequest获取多个请求参数

表单页面<form action="/app/param" method="post"> <input type="text" name="username"><br> <input type="password" name="password"><br> <input type="radio" name="gender" value="male">男 <inp

2021-08-18 21:21:00 286

原创 简简单单看懂java反射

获取class对象的三种方式:根据字节码文件状态不同有三种获取class对象的方式这是我的javabean类public class User { private String username; private String password; public User() { } public User(String username, String password) { this.username = username; .

2021-08-18 15:26:52 61

原创 获取EE项目文件的绝对路径

1、为什么相对路径是tomcat的bin目录ee项目中的相对路径指的是tomcat的bin目录,tomcat是在bin目录下调用的虚拟机 所以工作目录也是那个目录se和ee项目不同 用户的工作目录是jvm开启目录tomcat+应用=SE项目2.如何获取部署根目录下文件的绝对路径?* tomcat部署应用 虚拟映射 path docBase* docBase + 相对部署根目录的相对路径 = 绝对路径* ServletContext有一个方法你可以认为就是对do...

2021-08-18 01:01:45 125

原创 反射——使用反射获取成员方法、利用Mothed对象运行成员方法

依旧先贴出Student类public class Student { //私有的,无参无返回值 private void show() { System.out.println("私有的show方法,无参无返回值"); } //公共的,无参无返回值 public void function1() { System.out.println("function1方法,无参无返回值"); } //公共的...

2021-08-04 22:57:48 276

原创 反射——使用反射获取成员变量,给成员变量赋值或读取

要记住步骤,不要记住代码。因为代码有可能记不住,要明白先获取class对象,然后再获取里面的成员变量,获得到成员变量当然是赋值或者是获取值啦,这样一想不就很通顺了。依旧是个Student类public class Student { public String name; public int age; public String gender; private int money = 300; @Override public St.

2021-08-04 22:29:03 1935

原创 反射reflect——使用获取到的构造器创建对象

Student类需要去上一篇文章中查看代码实现import java.lang.reflect.Constructor;import java.lang.reflect.InvocationTargetException;public class myfl2 { public static void main(String[] args) throws ClassNotFoundException, NoSuchMethodException, InvocationTargetE.

2021-08-04 21:52:46 107

原创 反射(reflect)——使用反射的方法获取到java文件中构造方法

创建java文件public class Student { private String name; private int age; //私有的有参构造方法 private Student(String name) { System.out.println("name的值为:" + name); System.out.println("private...Student...有参构造方法"); } //公共的..

2021-08-04 21:18:00 146

原创 基于vue网站组件库Element的使用

过来!我教你怎么用(其实很简单。。)介绍 Element:网站快速成型工具。是饿了么公司前端开发团队提供的一套基于Vue的网站组件库。 使用Element前提必须要有Vue。 组件:组成网页的部件,例如超链接、按钮、图片、表格等等~ Element官网:https://element.eleme.cn/#/zh-CN 自己完成的按钮 Element 提供的按钮 布局方式基础布局容器布局<..

2021-07-27 22:31:07 702

原创 前端——Vue基础语法

Vue介绍 Vue是一套构建用户界面的渐进式前端框架。 只关注视图层,并且非常容易学习,还可以很方便的与其它库或已有项目整合。 通过尽可能简单的API来实现响应数据的绑定和组合的视图组件。 特点 易用:在有HTMLCSSJavaScript的基础上,快速上手。 灵活:简单小巧的核心,渐进式技术栈,足以应付任何规模的应用。 性能:20kbmin+gzip运行大小、超快虚拟DOM、最省心的优化。 Vue的使用 下载和引入vue.js文件。 编写入门程序。

2021-07-27 09:46:48 410

原创 前端——使用Vue命令创建项目

切记路径在哪里项目就会被创建到哪里去,我切换到了自己想存储项目的路径下创建项目命令,标红的是项目名 自己取vue init webpack my-project创建完成后截图如下启动项目命令,根据以下命令提示进行补充~如果在过程中出现问题,不动了,就结束掉重新做这步骤。结束批处理命令快捷键CTRL+C!!...

2021-07-26 22:03:05 134

原创 前端——vue项目环境配置

node类似一个浏览器,npm是包管理器。搞node的开发者不想维护node了,所以把node交给了好友npm开发者,这个npm开发者就把两个搞一起去了。。我们配置java环境的流程是下载jdk,下载idea,新建项目。而接下来的操作是vue创建项目的过程步骤一:安装node,安装完记得检查安装版本(node安装很简单,大家在网上下载包后安装即可,本教程是针对安装好node后的后续操作)步骤二:安装cnpm,这是阿里为了方便国内程序员维护的一个镜像,可以很快下载。安装完记得检查安装版本看

2021-07-26 21:08:41 651

原创 java多线程——使用代码论证同步方法的锁对象是this

描述:这是一个窗口卖票的问题,在这里运行后结果可以显示同步代码块和同步方法的锁对象一致,即可得出同步方法的锁对象是thispublic class MyRunnable implements Runnable { private static int ticketCount = 100; @Override public void run() { while(true){ if("窗口一".equals(Thread.current.

2021-07-24 23:49:52 239

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除