- 博客(34)
- 收藏
- 关注
原创 Java并发编程:volatile关键字详解
volatile关键字两大特性:线程可见性/禁止指令重排序原理:由jvm实现的一条汇编质量lock要知道为什么会能保证线程的可见性,先要了解jmm(java的内存模型)
2021-06-15 17:59:12 1347 1
原创 java 反射简介
什么是反射?Java的反射机制是在编译并不确定是哪个类被加载了,而是在程序运行的时候才加载、探知、自审。使用在编译期并不知道的类。这样的特点就是反射。
2021-06-08 16:33:36 202 1
原创 栈和队列---循环队列
之所以出队是on复杂度因为出队时候涉及到元素的移动,假如说我们出队的时候元素不移动只是改变队首的指向,出队的时候改变队尾下一个元素的位置的的指向,那么就会解决这个问题。这是需要引入一种新的队列循环队列队首用font 标记,用tail标记队尾中最后一个元素之后的位置。 当队首和队尾重合时候说明队列是空的 front==tail 队列为空,(tail+1)%c==front 队列为满,这样会浪费一个空间 c是数组的长度。具体实现:还是数组队列的接口直接写实现:public class Lo
2020-05-26 23:24:49 261
原创 栈和队列--数组队列
队列:一种线性结构(数组的子集)规定只能在头部取出数据(出队),在尾部插入数据(入队)数组队列的实现:先定义一个接口Queuepublic interface Queue<E> { int getSize(); boolean isEmpty(); void enqueue(E e); E dequeue(); E getFront();}2.实现--ArrayQueuepublic class ArrayQueu
2020-05-26 22:34:09 153
原创 栈和队列--letcode应用
上一篇少一个main 方法测试,这次补上mainpublic class Main { public static void main(String[] args) { ArrayStack<Integer> stack = new ArrayStack<>(); for(int i = 0 ; i < 5 ; i ++){ stack.push(i); System.out
2020-05-26 22:10:37 135
原创 栈和队列
栈的特性1.一种线性结构(数组的子集)2.先进先出:规定只能在数组尾部添加元素(入栈),并且只在数组的尾部删除元素(出栈)栈的应用:1.无处不在的undo操作(撤销)2.程序的调用栈的实现:1.基于数组的实现--数组Array.javapublic class Array<E> { private E[] data; private int size; // 构造函数,传入数组的容量capacity构造Array p...
2020-05-26 22:05:21 151
原创 springCloud服务的熔断和降级
首先声明:服务的熔断和降级是两个完全不同的概念,实现方式也不同。熔断是在服务的提供者那里,降级是在fegin那么远程调用的时候用的。好了不多bb直接上熔断代码: <!--熔断依赖 --> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-hystrix</ar...
2020-05-22 22:52:33 609
原创 SpringSecurity用法简介SSM篇——小白专用,大神请绕道
废话不说,直接上代码:<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xmlns:mvc="http:/
2020-05-16 12:24:25 171
原创 springboot消息队列
1. 在大多应用中,我们系统之间需要进行异步通信,即异步消息。2. 异步消息中两个重要概念: 消息代理(message broker)和目的地(destination) 当消息发送者发送消息以后,将由消息代理接管,消息代理保证消息传递到指定目 的地。 3. 异步消息主要有两种形式的目的地 1. 队列(queue):点对点消息通信(point-to-point) 2. 主题(topic):发布(...
2018-09-01 18:37:43 1890 1
原创 springboot整合redis
springboot整合redis首先导入pom文件:<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId></dependency>...
2018-08-31 00:13:00 146
原创 springboot缓存
在进入缓存之前先了解几个概念:cacheable的用法:下面举例说明:缓存写在service层我们直接看service/** *将方法的运行结果进行储存以后要相同的数据,直接从缓存中取 * CacheManager管理多个组件的,对缓存的真正crud的操作,在cach组件中,每一个缓存组件有自己的名字: * 几个属性: * cacheNames/va...
2018-08-28 09:10:34 2619
原创 springboot融合入druid mybatis
第一步、用idea初始化器创建springboot项目勾选web模块sql模块勾选jdbc、mybatis、和mysql(视情况定需要什么勾选什么),然后创建项目。创建完之后检查pom文件:里面会有对应的依赖:mysql的依赖<dependency> <groupId>mysql</groupId> <artifactId...
2018-08-22 00:18:28 365
原创 docker入门简单用法
docker是一个开源的应用容器引擎;是一个轻量级容器技术;Docker支持将软件编译成一个镜像;然后在镜像中各种软件做好配置,将镜像发布出去,其他使用者可以直接使用这个镜像;运行中的这个镜像称为容器,容器启动是非常快速的。就像咱们的windows系统一样我们安装完原生系统之后还有装启动常用软件等,现在我们把他们都打包,张三装过后李四只需要装这些包就行。我们的docker把my...
2018-08-19 09:36:42 172
原创 springoot web开发启动原理:外部servlet容器启动springBoot的应用原理
jar包:先执行主类的main方法,启动ioc容器,创建嵌入式的sevlet容器war包:启动服务器,服务器启动springboot应用,启动ioc容器先大的说原理主要是以下三点:一,先要写一个ServletInitializer集成SpringBootServletInitializer然后重写configure方法:public class ServletInitializer ...
2018-08-15 09:30:08 325
原创 springboot默认容器的切换使用以及建立war包项目,支持jsp与外部tomcat的使用
先说说怎么切换默认的容器:springboot默认的容器有tomcat(默认使用)、jetty(用于长连接例如聊天)、Undertow(处理并发较强不过不支持jsp)如果要在其中切换,只要两步即可:1.在pom文件中干掉原来的,2.写上自己的 例如要换掉tomcat:首先要用<exclusions>标签包裹住原有的tomcat<exclusions> ...
2018-08-14 00:41:12 758 2
原创 springBoot之自定义tomca属性以及三大组件Servlet、Filter、Listenter的注册
定义tomcat的两种方式:一种:在配置文件中改:这种的原理是实现WebServerFactoryCustomizer 2.0之前的是EmbeddedServletContainerCustomizer优先级小于下面这种鞋配置类。我们再看第二种,实现较为简单:@Beanpublic WebServerFactoryCustomizer<ConfigurableWebSer...
2018-08-12 22:47:24 396
原创 SpringBoot定制异常页面
先看后台代码:1由于是实验所以先把拦截器注释掉,当然不想注释,再加上这些异常请求也行,我这里先把这些注释掉: public void addInterceptors(InterceptorRegistry registry) { //addPathPatterns("/**").excludePathPatterns("/","/index.html","/user...
2018-08-12 16:41:15 841 2
原创 springBoot增删改查之删除
先写后台代码如下:@GetMapping("/empq/{id}")public String delete(@PathVariable("id") Integer id){ employeeDao.delete(id); return "redirect:/emps";}前台代码:<a th:href="@{/empq/}+${emp.id}"class...
2018-08-11 09:41:28 7882 1
原创 springBoot之员工修改功能
几乎所有的增删改功能大致都分为这两步:一、后台写controller 二、前台页面的取值。接下来就先说后台代码://来到修改页面查出要修改的员工id,通过查询其他信息@GetMapping("/emp/{id}")public String toUpdate(@PathVariable("id") Integer id,Model model){ Employee employe...
2018-08-10 13:20:54 4512 2
原创 springBoot之员工添加功能
员工添加分为三步:一、写添加页面、二、先方法。写方法分为两步:1.写一个通过员工list列表跳转到员工添加界面的方法,2.写添加方法,最后return"redircet:epms"重定向(员工列表的mapping)回员工列表;三,页面取值。在员工列表页面,员工添加按钮处,添加 th:href="@{/emp}" 对应的映射方法。由于a标签默认的方法请求方式是get所以不用写请求方式。对应的...
2018-08-09 01:48:39 3386 1
原创 springBoot遍历员工列表
新建一个xml文件把页面的公共部分抽取出来如图:th:fragment="topbar"(thyemeleaf的语法fragment后边定义的是别名用于th:replace="路径名/文件名::别名(topbar)"语法的)th:class="${activeUri=='main.html'?'nav-link active':'nav-link'}"th:href="@{main....
2018-08-08 23:39:50 4089
原创 springBoot登录,以及遇到的那些坑
springBoot登录,本次没有连数据库,主要用于练习。大致分为几个步骤:1.写登录方法,2.写拦截器,3.页面取值渲染。一.登录方法的编写在写登录时候,由于在初次写的时候return里面多加了个空格,导致于页面找不到,浪费我大量的时间!希望大家注意。postMapping 是springBoot的专门注解很好用。之所以用重定向的方式是为了防止重复提交。即每刷新一次就让提交一次表...
2018-08-06 01:36:23 3064
原创 springBoot页面国际化
springBoot国际化就是指页面可以按照中英文切换显示。实现步骤大致分为三步:1,配置国际化文件2.写国际化类添加组键中3.页面展示。大致原理就是LocaleResolver根据获取请求头中的信息,进行判断。第一步:编写properties格式例如login_zg_CN(国际化页面+语言代码+国家代码)和login_en_US同时要写一个默认的login.propertiesrg格式如图:...
2018-08-05 21:34:18 5273 1
原创 springBoot Web项目解决首页访问问题
方法一:写一个空的方法,return到指定的首页(每个都要写太麻烦不推荐)方法二:在cofig类中指定(推荐)@Configurationpublic class MyMvcConfig extends WebMvcConfigurerAdapter { @Override public void addViewControllers(ViewControllerReg...
2018-08-05 13:27:26 1208
原创 springBoot之扩展mvc的自动配置功能
举例子,我们要添加自定义的视图解析器。1:写一个类,类上面添加注解@Configuration 表明该类是一个配置类。2:让该类实现(implements)WebMvcConfigurer.3:实现addViewControllers方法4:用registry.addViewController(urlPath:"/dologin").setView("succes");url...
2018-08-05 12:28:05 530
原创 springBoot------SpringMVC自动配置
1. Spring MVC auto-configuration:Spring Boot 自动配置好了SpringMVC(WebMvcAutoConfiguration ctrl+n搜索类名)- Inclusion of `ContentNegotiatingViewResolver` and `BeanNameViewResolver` beans. - 自动配置了ViewReso...
2018-08-05 00:53:13 271
原创 springBoot模板引擎thymeleaf的基本用法
上篇写了怎么导入thymeleaf,和为什么要用模板引擎。本篇简单的总结了,thymeleaf的基本用法。1)、th:text;改变当前元素里面的文本内容(${}) th:任意html属性;来替换原生属性的值(例如,元素的id,class的值等),具体用法如上图, Selection Variable Expressions: *{...}:选择表达式:和${}在功...
2018-08-04 22:48:56 574
原创 springBoot默认模板引擎Thymeleaf简介
由于springBoot默认的是jar包形式,所以不支持,jsp。因此我们需要模板引擎。JSP、Velocity、Freemarker、Thymeleaf模板引擎的大致原理:页面+数据交给模板引擎(写一个页面模板,里面一些值是动态的,我们用表达式形式,表达。例如下图中的template中的${user},数据来自Data),模板引擎通过数据解析表达式,写到对应位置。最终显示出去。市场上...
2018-08-04 17:25:58 3683
原创 SpringBoot 之Web开发(一)
1.创建SpringBoot应用,选中我们需要的模块;2)、SpringBoot已经默认将这些场景配置好了,只需要在配置文件中指定少量配置就可以运行起来3)、自己编写业务代码.**自动配置原理,首先明白**这个场景SpringBoot帮我们配置了什么?能不能修改?能修改哪些配置?能不能扩展?xxxxAutoConfiguration:帮我们给容器中自动配置组件;xxxxPro...
2018-08-04 17:01:55 138
原创 springboot一周总结(下)
接着上篇的写:第三节————配置文件:配置文件SpringBoot使用一个全局的配置文件,配置文件名是固定的;application.propertiesapplication.yml配置文件的作用:修改SpringBoot自动配置的默认值;SpringBoot在底层都给我们自动配置好;YAML(YAML Ain't Markup Language) YAML A Markup Langu...
2018-07-14 11:47:29 190
原创 springboot一周总结(上)
去了一家做Gis的公司,平时比较忙,没时间写,所以一周写一次记录自己学习的点滴,不求点击,只求记录自己的一点成长吧。Springboot:我的理解就是一个大容器,它封装了,很多spring的底层东西,让我们省了很多事,例如在做项目的时候不用,再去配置一些xml文件以及扫描。使我们专注于开发,可以很快速的开发出来产品。它火的主要原因是,微服务的火,现在先不说。一入门:第一节:编写简单的demo he...
2018-07-14 11:24:19 674
原创 最实用最简单支持三大框架的自动生成代码工具
项目搭好框架之后就是,码代码,本人自己创造了一套,自动生成代码工具吧,可自动生成,实体类,接口,service ,mapper,使用简单。1,使用时先建立一个java项目demo把我的工具类copy进去,2再建造一个项目类demoWeb,建立资源包demo(自己起的也可以是其他)3.在java项目中建立lib文件夹把,log4j,mybatis,mysql的jar包copy进去。4,修改配置文件,...
2018-06-13 22:33:22 2892
原创 类似火车票勾选打印功能实现:实现选哪个打哪个功能
思路:先把票遍历到前台,再把需要打印的票的id通过复选框选到,存到数组中,通过ajax传值到后台对应方法。遍历之后传到新的页面,再将整个页面打印!代码:前台 <c:forEach items="${list}" var="list"> <tr> ...
2018-05-30 09:10:51 379
原创 解决ajax跳转页面HTTP Status 400 - Required Long parameter 'xx' is not present问题
应用情况,ajax传值已经到controller 方法也正确,就是不跳转页面的情况。(这是我在工作中碰到的,当时确信我的后台没有问题,就去问前端)实例代码:function print(){ /* var odid = $(obj).find("#odid").val(); */ var list =[]; $('input[name="test"]:checked').each(fun...
2018-05-29 17:15:27 4232
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人