![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java
文章平均质量分 92
码代马
这个作者很懒,什么都没留下…
展开
-
Spring Boot使用WebSocket
spring boot集成websocketWebSocket协议RFC 6455提供了一种标准化方法,可通过单个TCP连接在客户端和服务器之间建立全双工双向通信通道。 它是与HTTP不同的TCP协议,但旨在通过端口80和443在HTTP上工作,并允许重复使用现有的防火墙规则。WebSocket是全双工双向通信通道, 因此服务器和客户端可以相互进行通信, 而不像HTTP那样只能一个Request对应一个Response,且Response只能被动相应。集成步骤引用Maven依赖<depe原创 2020-12-25 23:55:51 · 503 阅读 · 0 评论 -
spring boot通过Constraint和ConstraintValidator自定义参数校验注解
Constraint注解在spring boot进行开发的时候,有时需要对请求的参数进行校验, 而@Constraint可以实现自定义的校验注解。Spring boot自定义参数校验注解如果Spring boot是2.3.0之后的版本,需要引入新的依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>sprin原创 2020-12-20 23:30:22 · 3648 阅读 · 0 评论 -
Shiro实战Demo
Shiro 使用hello shiro首先创建Maven项目并引入最新的shiro依赖 <dependency> <groupId>org.apache.shiro</groupId> <artifactId>shiro-core</artifactId> <version>1.7.0</version> <原创 2020-11-15 22:35:43 · 564 阅读 · 0 评论 -
Spring 事件监听器
在Spring中通过ApplicationEvent类和ApplicationListener接口来实现事件处理. 如果在Spring中实现了ApplicationListener接口,则每当ApplicationEvent事件发布到ApplicationContext中时, 都会通知实现了ApplicationListener接口的bean. 翻译自Spring Framwork官方文档在Spring Framwork框架中关于事件分为两类, 一类是官方提供的标准事.原创 2020-11-08 20:02:26 · 352 阅读 · 0 评论 -
Java线程的三种创建方式及源码分析
线程的创建主要有三种方式Thread直接创建Thread类中有run()方法,每次线程调用start()时,线程启动并开始执行run()方法。因此可以通过重写Thread类中的run()方法来实现线程。Thread thread = new Thread(){ @Override public void run() { System.out.println("...原创 2020-04-18 16:40:02 · 402 阅读 · 0 评论 -
Spring Boot启动后初始化相关数据
Spring Boot如何在启动后访问数据库并将数据库中的数据作为全局应用程序共享对象存储到ServletContext中。使用Spring Boot的监听器查看Spring Boot的官方文档,其内容有如下一段:If you want those listeners to be registered automatically, regardless of the way the app...原创 2020-01-17 13:25:54 · 348 阅读 · 0 评论 -
常用注解总结
Controller层@Controller :与@Component一样声明为Spring的Bean,同时标志为Spring的Controller类。@ResponseBody:不经过视图处理器,直接将Java对象转换为json数据输出到前端@RestController:@Controller和@ResponseBody的功能混合@RequestBody: 一般Pos...原创 2020-01-12 12:03:19 · 236 阅读 · 0 评论 -
Spring AOP的实现原理
Spring Aop底层原理简介Spring Aop的实现原理与代理模式有密切的联系。说起Aop就不得不说下OOP了,OOP中引入了封装、继承、多态性等概念来建立一种对象层次结构,用以模拟公共行为的一个集合。但是,如果我们需要为部分对象引入公共部分的时候,OOP就会引入大量重复的代码,例如:日志功能。AOP技术利用一种称为“横切”的技术,解剖封装的对象内部,并将那些影响了多个类的公共行为封...转载 2019-10-30 23:11:32 · 244 阅读 · 0 评论 -
Shiro学习——认证(一)
一、基本功能Authentication身份认证登录Authorization授权,即权限验证,验证某个已认证的用户是否拥有某个权限;即判断用户是否能做事情Cryptography使用加密算法保持数据安全Session Manager会话管理,即用户登录后就是一次会话,在没有退出之前,它的所有信息都在会话中;会话可以是普通 JavaSE 环境的,也可以是如 Web 环境的;Cry...原创 2019-05-23 15:24:18 · 139 阅读 · 0 评论 -
sprngMVC的拦截器实现
一、拦截器Spring web MVC的处理器拦截器类似于Servlet开发中的过滤器Filter,用于对处理器 进行预处理和后处理。Filter可以拦截任何请求,但是拦截器只能拦截控制器。它与AOP的差别是aop主要在特定方法前后进行处理,而拦截器主要针对的是控制器方法。常用于日志记录 :记录请求信息的日志权限检查,如登录检查性能检测:检测方法的执行时间二、实现自定义拦截器新建...原创 2019-05-12 17:01:53 · 112 阅读 · 0 评论 -
Java对mysql数据库进行备份和还原
https://blog.csdn.net/Alexshi5/article/details/82795716原创 2019-05-12 16:20:55 · 452 阅读 · 0 评论 -
Mybatis学习
MybatisMyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生类型、接口和 Java 的 POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。Mybatis全局配置<...原创 2019-04-22 20:21:43 · 217 阅读 · 0 评论 -
Ajax技术
ajax技术Asynchronous JavaScript And XML(异步 JavaScript 及 XML)Ajax(Asynchronous JavaScript and XML)是一系列web开发技术的集合,使用很多的web技术在客户端开发异步web应用。利用Ajax,web应用可以异步的发送数据获取数据,而不干扰现有页面的显示和行为。通过解耦数据接口层和展现层,Ajax允许web...原创 2019-04-26 19:27:22 · 100 阅读 · 0 评论 -
Java使用正则表达式的一些问题
String类的matches方法String类里的matches方法能匹配全字符串,而不能匹配字符串中的一部分,(这个地方好坑,一次项目中在这里耗时很长) String str = "my phone is :13376543489."; System.out.println(str.matches("[0-9]*")); str = "13...原创 2019-06-22 10:57:53 · 598 阅读 · 1 评论 -
JavaWeb信息管理系统
Servlet和jsp学习后利用项目复习实践知识。设计数据库用户id、用户名、用户密码、用户性别、用户年龄、用户出生日期。设计一张用户表,其表结构如下:CREATE TABLE `t_user` ( `uid` int(10) NOT NULL AUTO_INCREMENT, `uname` varchar(50) NOT NULL, `pwd` varchar(50) NOT...原创 2019-04-17 18:04:35 · 4866 阅读 · 5 评论 -
Eclipse中Web项目配置到本地Tomcat
一、安装tomcat二、新建Dynamic Web Project项目三四、五、六、七、八九、选择tomcat版本,点击next十、十一、十二十三原创 2019-06-01 22:51:20 · 2093 阅读 · 0 评论 -
数据库备份与恢复
数据库备份 /** * 数据库备份功能 * @param savePath 备份路径 * @param fileName 文件名 * @return * @throws InterruptedException */ private boolean exportDatabaseTool( String savePath, String fileName) thro...原创 2019-06-08 17:58:31 · 3216 阅读 · 1 评论 -
点餐系统
一、项目需求实现后台管理员的登录实现全部订餐公司人员的查询实现公司部门的查看、添加、编辑、删除实现餐厅管理的添加、修改、删除实现订单的按日期查询、订单的添加实现后台管理员的详细信息修改实现密码更改实现安电话号查找用户,并且实现对用户权限的修改实现数据的备份与还原二、项目运行环境eclipse、tomcat9、jdk11、MySQL三、使用技术前端:jQuery、Lay...原创 2019-06-15 21:27:32 · 4861 阅读 · 2 评论 -
Java的IO编程学习
一、相关概念流: 流向,从一端到另一端,是一个动态的、抽象的概念,是一串连续动态的数据集合。数据: 提供数据的原始媒介,如数据库、文件等。在Java中,对于数据的输入输出以流的方式进行的。jdk中封装了各种各样的关于流的类,在java.io包中。java中重要的关于流的类和接口类说明File文件类InputStream字节输入流OutputStream...原创 2019-06-22 10:30:14 · 407 阅读 · 0 评论 -
SpringBoot的配置文件
学习SpringBoot的两点问题SpringBoot的配置文件:SpringBoot的配置文件名必须为application.propertiesSpringBoot配置文件的位置必须在src/main/resource文件的下一级,如图:eclipse中在properties文件中添加注释,显示中文(不以ASCII显示)的方式:Windows ——> Preferenc...原创 2019-08-13 20:25:23 · 125 阅读 · 0 评论 -
高并发编程学习——synchronized、volatile、AtomicXXX、CountDownLatch
高并发编程基础——synchronizedsynchronized关键字synchronize锁的对象有三种:this、临界资源对象、Class类对象。this对象锁class test { public void testSync2(){ // 同步代码块,锁的是当前对象 synchronized(this){ System.out.printl...原创 2019-08-30 10:25:09 · 156 阅读 · 0 评论 -
高并发编程学习——ReentrantLock
https://blog.csdn.net/zxd8080666/article/details/83214089转载 2019-09-02 17:57:49 · 107 阅读 · 0 评论 -
数据结构和算法学习日记——单向链表
链表链表是一个有序的列表链表是以节点的方式存储,是链式存储链表的每个节点都包含data域和next域实现单向链表的基本操作package com.LinkedList.study;public class LinkedListDemo { public static void main(String[] args) { Node n1 = new Node(1...原创 2019-09-16 18:53:01 · 140 阅读 · 0 评论 -
Java集合中的equals( )和hashCode( )
hashcode() 与 equals() 方法的区别hashCode() 不相等,equals() 也一定不相等;hashcode() 相等,equals() 不一定相等。集合体系中的应用在集合中要重写hashCode( )和equals( )。解决哈希冲突在散列表(哈希表)中,两个不同的key其哈希值可能相同,当哈希值相同时即出现了哈希冲突。而在 HashSet 中不允许出现重复...原创 2018-11-27 22:07:23 · 777 阅读 · 0 评论 -
Servlet学习(四)ServletContext 和ServletConfig
ServletContextRequest 解决了一次请求内的数据共享问题,session解决了用户不同请求的数据共享问题,ServletContext则不同的用户的数据共享问题。原理:ServletContext 对象由服务器进行创建,一个项目只有一个对象。不管在项目的任意位置进行获取得到的都是同一个对象,那么不同用户发起的请求获取到的也就是同一个对象了,该对象由用户共同拥有。特点:...原创 2019-04-13 21:52:54 · 203 阅读 · 0 评论 -
Servlet学习(二)Request和Response
问题找不到HttpServlet类:将Tomcat中lib文件夹中的Servlet-api.jar文件导入。eclipse中配置Tomcat并启动服务器:https://blog.csdn.net/jessysong/article/details/69364337eclipse修改默认浏览器:https://blog.csdn.net/qq193423571/article/det...原创 2019-04-09 20:01:28 · 260 阅读 · 0 评论 -
java中的复制(clone()方法)
问题Java在处理基本数据类型时,采用的是值传递的方式执行。除此之外的其他类型都是引用传递的方式执行。因此,在Java中从A对象创建出另一个与A对象相同的B对象,例如ArrayList B=A;通过赋值实现。这样,往往修改B对象时,A对象也会跟着修改。若要改变这种情况,则需要使用clone()方法。浅复制与深复制浅复制:被复制对象的所有变量都有原来的值,而所有对其他对象的引用仍然指向原来的...原创 2019-01-23 15:09:06 · 207 阅读 · 0 评论 -
TCP编程
TCP传输协议一种面向连接(连接导向)的、可靠的、基于字节流的运输层(Transport layer)通信协议 。特点:面向连接点到点的通信高可靠性占用系统资源多、效率低TCP编程在网络通讯中,第一次主动发起通讯的程序被称作客户端(Client)程序第一次通讯中等待连接的程序被称作服务器端(Server)程序TCP协议基于请求-响应模式利用IO流实现数据的传输简单服...原创 2019-02-03 17:18:35 · 182 阅读 · 0 评论 -
UDP编程
UDP传输协议UDP(User DatagramProtocol )一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务。特点:非面向连接,传输不可靠,可能丢失。发送不管对方是否准备好,接收方收到也不确认。可以广播发送。非常简单的协议,开销小。套接字Socket套接字,是支持TCP/IP的网络通信的基本操作单元,可以看做是不同主机之间的进程进行双向通信的端点,简单的说就...原创 2019-02-03 00:16:22 · 145 阅读 · 0 评论 -
Java网络编程
网络编程网络分层由于结点之间联系很复杂,在制定协议时,把复杂成份分解成 一些简单的成份,再将它们复合起来。最常用的复合方式是层次方式,即同层间可以通信、上一层可以调用下一层,而与再下一层不发生关系。OSI模型TCP/IP参考模型InetAddress封装计算机的IP地址和DNS(没有端口信息)。常用方法:getLocalHost()---->返回本地主机getByNam...原创 2019-02-01 22:22:02 · 146 阅读 · 0 评论 -
Java多线程03
线程协作——生产者消费者模式生产者和消费者问题生产者检查仓库是否已经满了,如果没满,将生产产品;如果仓库已满,停止生产产品。消费者检查仓库是否已空,仓库不空,消费者消费产品;若空,消费者停止消费产品。分析:这是一个线程同步问题,生产者和消费者共享同一个资源,并且生产者和消费者之间相互依赖,互为条件。对于生产者,没有生产产品之前,要通知消费者等待。而生产了产品之后,又需要马上通知消...原创 2019-01-31 20:00:55 · 103 阅读 · 0 评论 -
Java之Scanner
用了两次Scanner,Java抛出异常:Exception in thread “main” java.util.NoSuchElementException报错代码如下:import java.util.Scanner;public class Test { public static void main(String[] args){ Test test=ne...原创 2018-10-16 20:04:09 · 341 阅读 · 1 评论 -
Java基础一
Java中的取余操作:a%b=a-(a/b)*b其中a/b是a除以b的向下取整。Java中的取余操作数也可以是负数和浮点数,而在C/C++中,取余运算的操作数只能是整数。eg:5%(-3)=25.2%3.1=2.1注解信息@SuppressWarnings(“resource”)注解信息,主要用于告诉编译器忽略一些警告信息(如资源泄露等),该条语句后不用加分号带标签的break语...原创 2018-09-28 19:53:55 · 123 阅读 · 0 评论 -
Java数据库
JDBC操作中,进行数据库连接通过ClassforName( )加载数据库驱动程序。通过DriverManager类进行数据库的连接,如果数据库不存在,将创建该数据库。加载Driver类后,Class.forName( )会向DriverManager注册该类,此时可通过DriverManager中的静态方法getConnection创建数据库连接。通过Connection接口接收连接。当...原创 2018-10-06 14:25:57 · 294 阅读 · 0 评论 -
Java初步入门
编译运行命令单文件编译运行编译:javac 文件名 (编译后生成.class文件)运行:java 主类名程序含有中文,编译运行后出现乱码解决:编译:javac 文件名 -encoding utf-8运行:java 主类名接口不管定义接口里的方法时是否使用了public abstract修饰符,接口里的方法总是使用public abstract...原创 2018-09-27 20:01:21 · 94 阅读 · 0 评论 -
Java GUI编程
一、AWTjava.awt中提供了GUI设计所用的类和接口。下图描述了主要的类库之间的关系:GUI开发常用流程Java把Component类的子类或间接子类创建的对象,构成一个组件。Java把Container的子类或间接子类创建的对象,构成一个个容器。向容器添加组件。Container类提供了一个public方法add( ),一个容器可以调用这个方 法,将组件添加到该容...原创 2018-10-04 20:30:37 · 664 阅读 · 0 评论 -
Java多线程01
title: Java多线程date: 2019-01-29 15:22:39tags: Javajava核心概念在一个进程中,如果开辟了多个线程,线程的运行由调度器安排调度,调度器是与操作系统紧密相关的,先后顺序是不能人为的干预的。对同一份资源操作时,会存在资源抢夺的问题,需要加入并发控制线程会带来额外的开销,如cpu调度时间,并发控制开销每个线程在自己的工作内存交互,加载和存...原创 2019-01-29 23:20:38 · 121 阅读 · 0 评论 -
Java多线程02
线程的并发控制**并发:**同一个对象多个线程同时操作。线程同步处理多线程问题时,多个线程访问同一个对象,并且某些线程还想修改这个对象。 这时候,我们就需要用到“线程同步”。 线程同步其实就是一种等待机制,多个需要同时访问此对象的线程进入这个对象的等待池形成队列,等待前面的线程使用完毕后,下一个线程再使用。由于同一进程的多个线程共享同一块存储空间,在带来方便的同时,也带来了访问冲突的问题...原创 2019-01-30 22:54:02 · 106 阅读 · 0 评论 -
在eclipse中进行Java单元测试
1.打开项目,打开项目属性(Properties)2.选择Java Build Path3.选择右边的“Libraries”标签,然后点击“Add Library…”按钮4.选择“JUnit”,然后next5.选择“JUnit5”,然后“Finish”6.点击“Apply and Close”以上步骤将JUnit5添加到项目中了。7.然后(以测试Student类为例子),...原创 2019-04-03 19:25:05 · 5723 阅读 · 2 评论 -
JSP学习总结
JSPJSP(全称JavaServer Pages)是由Sun Microsystems公司主导创建的一种动态网页技术标准。JSP部署于网络服务器上,可以响应客户端发送的请求,并根据请求内容动态地生成HTML、XML或其他格式文档的Web网页,然后返回给请求者。JSP技术以Java语言作为脚本语言,为用户的HTTP请求提供服务,并能与服务器上的其它Java程序共同处理复杂的业务需求。JSP将J...原创 2019-04-16 09:36:43 · 1940 阅读 · 0 评论