- 博客(23)
- 收藏
- 关注
原创 之字形遍历树
搜索树有两种方式,一种的bfs(广度优先搜索)一种是dfs(深度优先搜索),而之字形遍历属层次搜索,可通过改写bfs来实现。之字形的特点是一行正序则下一行倒序,循环下去。如上图,我们的遍历顺序应该是 1-》3->2-》4->5->6-》10->9->8->7,而倒序我们可以通过栈先进后出的特性来实现。基本思路是用栈来存储我们当前遍历层次的孩子节点。比...
2020-02-21 19:57:21
556
原创 二叉树的非递归遍历
二叉树的遍历主要分三种,分别是先序、中序、后序。如果按搜索的话可分为bfs(广度优先搜索)和dfs(深度优先搜索),前者基于队列后者基于栈,在处理树和图的时候比较常用。再来说先序、中序、后序三种遍历的区别:先序 父->左->右 中序左->父->右 后序左->右->父如果使用递归很简单,我们可以使用递归栈的特性,轻松实现树的先中后序遍历,如下...
2020-02-19 21:33:02
136
原创 图解TCP/IP 记录
网关负责将从传输层到应用层的数据进行转换和转发的设备。典型例子:互联网邮件与手机邮件之间的转换服务。IP:ip不具有重发机制,属于非可靠传输协议。ICMP:ip数据包在发送途中一旦发生异常导致无法到达对端目标地址时,需要给发送端发送一个发生异常的通知,icmp就是为这一功能而制定的。ARP:从分组数据包的ip地址中解析出物理地址(MAC地址)的一种协议。...
2020-01-16 16:25:17
361
原创 springboot文件上传并回显
之前了解过文件的上传,当时不知咋的觉得有点难。然后昨天看了一遍就在想,我当初为毛会觉得这玩意难!先还是引入依赖<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId&...
2019-02-25 22:22:58
1628
原创 解决报400错误(可能是日期类型参数导致)
今天搞项目的时候,用ajax提交数据一直报400,肯定不是地址问题啊又不是404。一开始以为是前端提交数据和实体类参数名不能对应。逐一排查后发现一遇到Date类型的就有问题,后来百度半天才发现:SpringMVC 在接收日期类型参数时,如不做特殊处理。(我前端直接传的2018-12-17这种格式的数据),只需要在实例中处理一下就可以了@DateTimeFormat(pattern = "yy...
2018-12-17 15:50:12
2072
原创 spring注解版 Bean的生命周期
这里说的生命周期就只是初始化和销毁两个阶段,没有深究。主要有四种一、注解@bean指定public class ZhangSan { public ZhangSan() { System.out.println("ZhangSan......"); } public void init() { System.out.println("init......"); }...
2018-10-19 13:12:05
233
原创 spring注解版 使用FactoryBean(工厂Bean)注册组件
一般在容器中注册组件都使用@Bean或者之前讲的@Import,当然还有包扫描+组件标注注解的方法。今天学了一个工厂Bean的方式注册组件,正好也在学设计模式,研究研究玩FactoryBean需要搞一个类去实现它,老规矩,类名MyFactoryBeanimport org.springframework.beans.factory.FactoryBean;import test.sp...
2018-10-18 20:51:30
2535
原创 spring注解版 @Import和ImportSelector
根据我简单的理解,@Import放类上面貌似只能引入一些无参组件但是比起@bean方便之处就是一个注解可以引入多个还不用写方法。比如:@Import({ZhangSan.class,LiSi.class,WangWu.class})public class MainConfig {}一下就引入三个组件,简洁明了。 ImportSelector强调的是复用性,使用它需要自建一...
2018-10-18 16:29:33
2288
原创 spring注解版 TypeFilter自定义扫描bean规则
最近决定从学一下spring,以前学的时候很多东西就不怎么理解,这里开始好好学学。今天看了自定义TypeFilter,在扫描包的时候可能会用到吧。@ComponentScan(value = "top.blogs", includeFilters = {@Filter(type = FilterType.ANNOTATION, classes = { Controller.class })...
2018-10-18 12:01:13
2470
原创 记录关于在springboot中使用@RequiresRoles不起作用
今天看了shiro视频,由于视频是spring和shiro集成,我用springboot实现,遇到一些问题。最后还是百度解决了,记录一下。就是在springboot集成shiro的时候,为了简便用了注解,问题来了,@RequiresRoles这注解不起作用。后来看了大神的解决方法,需要加入以下两个bean@Beanpublic DefaultAdvisorAutoProxyCreato...
2018-09-02 16:34:58
2479
2
原创 spring cache和redis(springboot 2.x)
搞了一天算是搞出来点东西了。网上springboot整合redis的教程大部分都是基于springboot 1.x的,然后配置的CacheManager如下@Beanpublic CacheManager cacheManager(RedisTemplate<Object, Object> redisTemplate) { RedisCacheManager redisC...
2018-09-01 15:48:11
318
原创 springboot和redis
暑假的时候抽时间看了看redis,感觉还不算太难,也可能是我没深究。今天学了springboot整合redis,记录一下。首先引入依赖<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis<...
2018-08-31 15:29:44
554
原创 Springcloud记录 Zuul
老规矩,建几个项目:Eureka服务器(zuul-eureka-server),端口8761;服务提供者(zuul-book-service),端口9000,提供/book/{bookld}服务,用于查找图书,一下是配置和部分代码;server: port: 9000spring: application: name: zuul-book-serviceeurek...
2018-08-13 10:48:07
129
原创 springboot用aop记录操作日志
第一次接触日志,慢慢看别人代码自学吧。今天看到了一个后台记录员工操作记录的功能感觉很6,边敲边学习学习。建个项目加入以下三个依赖其中包括对aop的支持,这几个依赖不用多说了吧<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-...
2018-08-12 18:49:46
3003
原创 Springcloud记录 Hystrix
Hystrix主要用于保护调用服务的一方,如果被调用的服务发生故障,符合一定条件, 就开启断路器,对调用的程序进行隔离。还是先来个服务端(hystrix-server),端口8761。再来个服务提供者(hystrix-provider),端口8080,来个Person类(省略get、set方法)public class Person { private Integer id; p...
2018-08-10 18:43:31
136
原创 thymeleaf引入公共页面的某个片段
读别人代码看到的,借鉴借鉴记录记录。首先在公共页面(common.html)用th:fragment定义要引入的片段,取个名字就叫header;<head th:fragment="header"></head>然后在需要这些片段的页面用th:include引入,::这个符号后面的就是公共页面取的名字header;<head th:include=...
2018-08-09 15:07:23
7089
2
原创 Springcloud记录 Feign
之前学习的服务间调用用的是Spring自带的RestTemplate,这里记录一下另一个REST 客户端:Feign服务器端项目(cloud-server),端口8761,没啥改变。服务提供者(cloud-provider),端口8080,提供一个REST服务@RestControllerpublic class MainController { @GetMapping("/h...
2018-08-08 18:45:59
110
原创 Springcloud记录 Ribbon
Ribbon是Netflix公司开源的一个负载均衡的项目,这里记录一下在SpringCloud中使用Ribbon。首先建一个服务器端项目(cloud-server),端口为8761;再建一个服务提供者项目(cloud-provider);最后一个服务调用者项目(cloud-invoker);为服务提供者(cloud-provider)项目配置应用名cloud-provider;并建个Mai...
2018-08-08 13:32:21
102
原创 Springcloud记录 Eureka 2
之前初步认识了服务器和客户端的配置,这里记录一下服务调用者(server-invoker)与服务提供者(server-provider)的调用,而这两者都属于客户端,所以都需要在启动类加@EnableEurekaClient注解@SpringBootApplication@EnableEurekaClientpublic class EurekaInvokerApplication {...
2018-08-06 18:09:05
107
原创 Springcloud记录 Eureka 1
据说微服务很火,跟个风。先创建一个名为first-eureka-service的项目作为服务器,书上说在pom.xml中加入这个<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-eureka-s...
2018-08-06 16:21:00
107
原创 页面引用公共basePath
读别人源码看到的,感觉很好用,记录一下。common.jsp<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%><%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c&quo
2018-05-01 22:20:55
545
原创 记一点点SQL注入
之前学jdbc的时候了解过一点点sql注入,这也是为什么要用PreparedStatement而不用Statement的原因之一吧。今天特意了解了一下sql注入,这里记录一下免得忘了。以我自己写的博客网站(自己练习写的个网站,域名随便起个http://www.8888.com)为例,点击某篇博客进入(http://www.8888.com/blogPage.jsp?id=2)。然后呢就要查管理员表...
2018-02-09 15:59:26
166
原创 mysql的交并差
Mysql只提供了并集(union),没有提供差集,和交集,可以用union来实现交和差. 先建两个结构一样的表table1和table2 create table table1(name varchar(20));create table table2(name varchar(20));插入数据 #向table1中插入数据insert into table...
2018-01-08 22:43:25
4083
3
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人