自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 SpringMVC--拦截器

具体详情请参考:https://www.cnblogs.com/jianjianyang/p/5009457.htmlhttps://blog.csdn.net/reggergdsg/article/details/52962774https://blog.csdn.net/qq_42402854/article/details/82935607一定要记得写 @Controller 注解啊,否则报404找不到资源奇怪的地方:返回modelAndView对象时中文乱码,怎么解决都不行!!...

2021-10-02 23:27:25 219

原创 SpringMVC文件上传

这是单文件上传,如果是多文件上传,有两种方式:1.后端接收的地方,用多个MultipartFile类型的对象,分别一一与前端<input>框里的name属性值对应上。2.后端接收的地方,用MultipartFile数组接收,此时前端<input>框里的name属性值相同...

2021-10-01 17:10:58 208

原创 SpringMVC数据响应

页面跳转注意: WEB-INF包下的资源受保护,不能使用重定向获取到,可以使用转发获取到。注意一下两写法:第一种是自己new出一个modelAndView对象,第二种是直接在参数位置传一个modelAndView对象。对于第二种,SpringMVC容器封装好的、能够自动注入写在参数位置的modelAndView对象。除此之外,还有一种变形的写法,了解一下变型2:设置request域SpringMVC也帮我们封装好了HttpServletRequest对象,在参数位置写了之后,容器会自动.

2021-10-01 13:52:35 215

原创 springMVC入门

spring集成web环境主要代码,web.xml里面配置监听器自己创建的监听器,并实现ServletContextListener接口,web包下,获取bean对以上代码,可以做一些优化,比如对ContextLoaderListener中xml文件的获取,我们可以抽取分离,亦比如,对于UserServlet中ApplicationContext 对象的获取也可以做抽取分离。实际代码如下,web.xml文件里面配置全局参数然后在ContextLoaderListener类中就可以这样

2021-09-25 10:32:10 76

原创 关于tomcat的使用以及web项目的部署

web部署请参考:https://segmentfault.com/a/1190000012762629https://cxyzjd.com/article/Alexshi5/79917962war包请参考:https://blog.csdn.net/qq_41094332/article/details/1084970801099端口占用请参考:https://blog.csdn.net/weixin_41325595/article/details/897052541099端口被

2021-09-01 10:32:48 121

原创 声明式事务控制

声明式事务控制与编程式事务控制编程式事务:在业务代码中添加事务控制代码,这样的事务控制机制就叫做编程式事务声明式事务:通过xml或者注解配置的⽅式达到事务控制的⽬的,叫做声明式事务编程式事务:所谓编程式事务指的是通过编码方式实现事务,即类似于JDBC编程实现事务管理。管理使用TransactionTemplate或者直接使用底层的PlatformTransactionManager。对于编程式事务管理,spring推荐使用TransactionTemplate。声明式事务:管理建立在AOP之上的。其

2021-08-31 14:39:34 256

转载 return 、break和 continue的区别

1. return关键字并不是专门用于跳出循环的,return的功能是结束一个方法。 一旦在循环体内执行到一个return语句,return语句将会结束该方法,循环自然也随之结束。与continue和break不同的是,return直接结束整个方法,不管这个return处于多少层循环之内。 @Test public void returnRest() { for (int i ...

2021-07-09 11:36:07 238

转载 点击run无响应的解决办法

今天导入别人的项目,想要运行一遍项目,看看这个效果怎么样,结果刚刚运行还是出现了点击run无响应的问题,今天特意将这坑填到这,以供以后踩坑使用 先看一下出错的亚子(点击run无响应) 下面就是解决办法 1、点击File->Project Structure进入 或者直接Ctrl+Alt+Shift+S 2、点击Project 然后选择一个文件夹用于项目将编译运行的结果保存 3、第三步,点击File->然后点击Invalidate Caches / Restart,重新启动一下 4、最后点

2021-07-07 16:53:21 3566 1

原创 Spring集成Junit代码实现

Spring 整合junit的步骤1.导入spring整合junit的jar坐标 <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.13</version> </dependency> &lt

2021-06-21 21:36:24 81

原创 Spring 新注解

非自定义的Bean的配置 <bean>加载properties文件的配置 <context:property-placeholder>组件扫描的配置 <context:component-scan>要想替换以上注解,还需要新的注解,如下:使用了新注解,就可以完全替代 xml 配置文件步骤1.首先建一个核心配置类目的:就是取代 xml 配置文件代码:核心配置类:其他配置类Dao:Service :测试类:打印结果:...

2021-06-19 12:06:11 67

原创 Spring中的@Value注解使用

作用该注解的作用是将我们配置文件的属性读出来,并赋给指定变量两种形式说一下${}和#{}区别@Value的值有两类:① ${ property : default_value }② #{ obj.property? :default_value }第一个注入的是外部配置文件对应的property,第二个则是SpEL表达式对应的内容。 那个default_value,就是前面的值为空时的默认值。注意二者的不同,#{}里面那个obj代表对象。形式一:@Value(“${xxx}”):此时,

2021-06-19 10:10:22 511

原创 @Resource和@Autowired注解的区别

介绍@Autowire和@Resource都是Spring支持的注解方式动态装配bean。Spring不但支持自己定义的@Autowired注解,还支持由JSR-250规范定义的几个注解。如:@Resource、@PostConstruct 及 @PreDestroy二者联系@Autowired和@Resource注解都是作为bean对象注入的时候使用的两者都可以声明在字段和setter方法上注意:如果声明在字段上,那么就不需要再写setter方法。但是本质上,该对象还是作为set方法的实

2021-06-11 23:28:28 14913 1

原创 Spring注解开发

Spring是轻代码而重配置的框架,配置比较繁重,影响开发效率,注解可以代替xml配置文件,简化配置,提高开发效率。Spring原始注解Spring的原始注解主要是替代 <Bean> 的配置,主要的有以下这些:插一句,能听明白就听,听不明白就忽略,因为我的表述可能不是很严谨,这是实际测试中遇到的问题:解析配置文件时,如果遇到相同的全包名,那么就从main方法所在的全包名路径下找起。原始注解入门操作dao层:service层:web层:applicationContext.

2021-06-08 22:45:00 87

原创 利用Spring产生数据源对象

Spring配置数据源之前学习了,利用Spring加载自定义的类,创建Bean对象,那我们可不可以把第三方的Bean也交由Spring创建呢?答案是:可以。首先是配置文件:代码如下:很重要的一点,DataSource的包不要选错了,用的是如下的包...

2021-06-07 23:12:55 147

原创 手动创建C3P0数据源(抽取properties文件)

抽取配置文件上一篇文章已经详细讲过了如何手动创建C3P0数据源,但是有一个问题,那就是,我们连接数据库的相关信息都在代码里写着,这样的话耦合度相当的高,是不利于开发的,下面就来讲讲降低耦合度的做法。这里需要了解的是如何解析配置文件,ResourceBundle resourceBundle = ResourceBundle.getBundle(“jdbc”);//参数的路径相对于类加载路径,也就是相对于resources的路径然后有这么一个方法,大致了解一下代码具体详情如下:PS:prop

2021-05-30 21:24:22 350 2

原创 手动创建C3P0数据源

为什么使用连接池:在一般项目中操作数据库,每一次的操作都是建立一个连接,操作完成后才稀放连接,而JDBC不会保持连接的持续,超过一定的时间会稀放该连接。而建立新的连接都需要100多毫秒,从而耗费时间。若使用连接池进行池化连接,随时取用,平均每次取用仅需要15毫秒左右。在高并发随机访问数据库的情况下使用连接池能很好提高效率。c3p0是一个开源的JDBC连接池,实现了数据源和JNDI绑定,支持JDBC3规范和JDBC2的标准扩展,使用它的开源项目有Spring、Hibernate等。c3p0还具有自动回收

2021-05-30 17:58:31 602

原创 Bean的依赖注入方式

初次学习利用spring容器创建Bean对象的过程大致如下:Controller层:Service层:Dao层:配置文件:以上这个过程,将 UserServiceImpl 的创建权交给Spring容器,然后从容器中获取 UserService进行操作,而 UserService 内部调用 Dao 的方法,所以我们发现问题在哪? Service层和Dao层的关系还是在依靠Java代码。下面讲依赖注入,目的就是解决上面所说到的问题,更大程度的解耦。这种方式使业务层和持久层的依赖关系由 Spr

2021-05-23 22:49:57 319

原创 实例化Bean的三种方式

无参构造方法实例化我们最常用的也是这种方法。配置文件如下:接口实现类的无参构造方法如下:测试类运行如下:工厂静态方法实例化先创建一个工厂类,并在该类中创建一个静态方法,如下...

2021-05-23 15:37:22 91

原创 Spring Ioc例子及配置文件小总结

Spring IOC例子实现步骤:导入Spring Ioc的依赖包创建Dao接口及接口实现类创建Spring核心配置文件(application.xml文件),并配置<bean>标签创建demo类,获取application.xml的上下文对象,并由该对象获取一个 bean 实例由 bean 对象调用方法配图:配置文件中的<bean>标签解释:id就是这个bean的“名字”,保证全局唯一即可,尽可能的见名知意class是全限定包名,也就是要用到的接口实现类的

2021-05-22 20:46:44 115

原创 Spring体系结构及IoC介绍

Spring的体系结构如下图所示,整个spring框架按其所属功能可以划分为五个主要模块,这五个模块几乎为企业应用提供了所需的一切,从持久层、业务层到表现层都拥有相应的支持,这也是为什么称Spring是一站式框架的原因。Test模块Spring可以用非容器依赖的方式进行几乎所有的测试工作,支持JUnit和TestNG等测试框架。核心模块(Core Container)Beans: 负责Bean工厂中Bean的装配,所谓Bean工厂即创建对象的工厂,Bean的装配也就是对象的创建工作。Core

2021-05-17 18:00:35 186

原创 深度理解Spring----AOP

查看了很多资料,浏览了很多文章,这里总结一下AOP,启蒙原文: https://blog.csdn.net/q982151756/article/details/80513340.一、对AOP的初印象首先先给出一段比较专业的术语(来自百度):在软件业,AOP为Aspect Oriented Programming的缩写,意为:面向切面编程,通过预编译方式和运行期间动态代理实现程序功能的统一维护的一种技术。AOP是OOP的延续,是软件开发中的一个热点,也是Spring框架中的一个重要内容,是函数式编程

2021-05-17 17:58:19 148

原创 Spring入门小知识

什么是框架Java框架就是一些类和接口的集合,通过这些类和集合之间的协作来完成一系列的程序实现。换言之,框架就是一类工具包的组合,方便开发。我们在开发的过程中如果遇到比较复杂的功能时,我们会把共性的东西抽取出来,形成工具类。如果这些工具类由很多Java工具类组成,用于某一方面且功能强大,我们就会将其制作成jar包发布,供其他项目引用,这个jar包就可以称之为框架。框架 是开发中的半成品,它不能提供web应用程序的所有东西,但是有了框架,我们就可以集中精力进行业务逻辑的开发,而不用关心它的技术实现以及一

2021-05-14 16:04:23 110

原创 浅谈HashMap

HashMap相关要点HashMap原理:不同版本的 JDK 实现HashMap的原理是有所不同的总体概括:  JDK 1.6, JDK 1.7 ,HashMap 采用位桶 + 链表实现。  JDK 1.8 HashMap 采用位桶 + 链表 + 红黑树实现。(当链表长度超过阈值 “8” 时,将链表转换为红黑树)位桶 + 链表 的实现方式是采用链表处理冲突的,同一 hash 值的节点都存储在同一链表上,但是当相同 hash值的节点过多时,存储在一条链上的节点就会变多,这样一来在链表上的查询就变

2021-05-10 16:32:45 48

原创 Java基础之map总结

map的基础理解话不多说,先上图,可以这样简单的对容器中的map进行分类:我们在Java开发中,除了最常用的基本数据类型和String对象之外,也会经常用到集合类。集合类中存放的都是对象的引用,而非对象本身,为了语言上的便利,我们暂且把集合中的对象默认为集合中对象的引用。集合只用于存储对象,集合的长度是可变的,集合中可以存储不同数据类型的对象。集合类可以分为两大类,一类是Collection,另外一类是Map。讲到这里,有一个小插曲要说一下。严格意义上讲,map并不是一个集合。 而是两个集合之

2021-05-08 11:11:12 361

原创 旋转字符串问题

引题有点像字符串模式匹配问题,这里请大家自行复习KMP算法。讲三种方法吧方法一:思路: B in (A+A)如果做过这道题的小伙伴,应该是能看懂我写的是什么意思。大致解释一下:就是判断 B 是否是 A+A 的子串,如果是,则返回 true;如果不是,则返回 false。依据:因为 A+A 里面包含了 A 经过旋转后的所有可能性。AC代码:class Solution { public boolean rotateString(String A, String B) {

2021-05-05 16:38:48 45

原创 杨辉三角经典算法大总结(Java版)

前言杨辉三角,也叫贾宪三角,帕斯卡三角。最早出现于北宋时期,贾宪首先使用“贾宪三角”进行高次开方运算。后来南宋杨辉进行辑录出书,帕斯卡是迟于杨辉三四百年才发现这一规律,叫法上看个人习惯,我习惯称之为杨辉三角。杨辉三角前几行示图:              1       1 1      1 2 1     1 3 3 1    1 4 6 4 1   1 5 10 10 5 1  1 6 15 20 15 6 1 1 7 21 35 35 21 7 11 8 28 56 70 56

2021-05-03 20:54:03 3191 1

原创 摩尔投票算法(Java版)

引题力扣上面刷到的,感觉挺有意思的,题目难度不大,摩尔投票法应是首当之选。很多小伙伴初次接触时举出反例试图证明摩尔投票法是错误的,不要紧,今天总结一下,最坑的不是题目,是你要看清楚题目。重点:多数元素的定义: 出现次数大于 ⌊ n/2 ⌋ 的元素,并且假定一定存在。 ⌊ n/2 ⌋ 是向下取整的意思。举个实例:数组长度为 5,则多数出现次数要 大于 2;数组长度为6,则多数出现次数要 大于 3.首先我们要搞清楚这一点,题目中的 多数 跟我们平时讲的 众数 是不一样的,它不是一个概念,所以那些举出反

2021-04-29 16:18:24 383

转载 Java(ListNode) 中的链表及头结点

ListNode 头结点的理解:一个链表头节点为headhead -> 1 -> 2 -> 3 -> 4 -> 5 -> 6head叫做链表的头节点1 所在的节点叫做链表的首节点(不知叫法是否准确)从定义上严格来说, 头节点head本身并没有值,它只是一个指向首节点1的指针。也就是说head.val为空,head.next.val=1。即head的下一个节点才是1的节点。那上述的链表就有7个节点(包含头节点head)。但是,在一些

2021-04-26 15:31:25 3876

原创 二分查找相关总结

前言二分查找作为一种基础算法,我们完全有理由充分掌握它,而不是记一些模板。它的核心思想就是,不断缩小问题规模。可能你经常纠结于 while (left <= right)、while (left < right)、while (left + 1 < right) 这些写法中,其实大可不必。我们在学习和练习的过程中,应该首先掌握算法的思想,而不是不同写法的区别和细节。引题解题思路: 首先定义两个指针 left,right ,然后根据待搜索区域的中间值 nums[mid] 与目

2021-04-21 12:08:21 59

原创 串模式匹配----BF算法

引例这样一道题: 给你两个字符串 haystack 和 needle ,请你在 haystack 字符串中找出 needle 字符串出现的第一个位置(下标从 0 开始)。如果不存在,则返回 -1 。这道题就是一个串模式匹配的问题,常见的相关算法有:BF(暴力算法),KMP算法,本文主要讲一下BF算法。先给出本人的AC代码class Solution { public int strStr(String haystack, String needle) { if (hays

2021-04-20 11:14:23 996

原创 LeetCode----移除数组重复元素

移除元素题目1:删除有序数组中的重复元素要求:重复元素只出现一次,最后返回新数组的长度,不能使用额外的数组,必须原地修改,仅使用O(1)的额外空间解题思路:双指针法  首先我们可以定义两个指针,一个快指针,一个慢指针。慢指针初始位置在nums[0],快指针初始位置在nums[1]。然后比较两个指针所在位置对应的值,如果相等,则快指针后移一位,慢指针不动;如果不相等,就把快指针当前值赋值给慢指针后一位,然后慢指针后移一位…直到快指针遍历完原始数组为止。最后返回 慢指针下标+1。本人代码:class

2021-04-18 16:38:23 193

原创 LeetCode----ListNode语法及基本操作

ListNode相关要点前言最近在刷LeetCode,遇到一些似曾相识但又模棱两可的知识点,这里做一下总结,本文是Java中ListNode语法及操作的梳理。类结构如下public class ListNode { int val; //结点值 ListNode next; //用来指向下一个结点的ListNode对象 ListNode() {} ListNode(int val) { this.val = val; } ListNode(int val, ListNod

2021-04-17 10:36:02 7590

空空如也

空空如也

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

TA关注的人

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