03 2023 档案
摘要:1.1)Java有哪几种数据类型 基本数据类型:byte(1字节) short(2字节) int(4字节) long(8字节) float(4字节) double(8字节) char(2字节) boolean(1字节) 引用数据类型:String 类 接口 抽象类 枚举 数组 1.2)JVM、JRE
阅读全文
摘要:21. 前缀编码 在一个字符集中,任何一个字符的编码都不是另一个字符编码的前缀。 22. JVM清理垃圾命令 GC.run 23. 循环队列引入的目的 消除线性队列的“假溢出”,充分利用存储空间。 24. Webservice是什么?它的引擎是什么? WebService是一个平台独立的、低耦合的,
阅读全文
摘要:11. 线程中wait和sleep的区别 Wait方法属于Object类,使线程放弃进入执行,进入线程等待池,只能使用notify或notifyAll方法才能唤醒此线程,线程会等待进入线程池。即使在执行此方法时,线程已进入线程池,依然会放弃执行,让出线程池,交出锁。即使线程被激活,也需要等待前方线程
阅读全文
摘要: 1. 线程和进程的区别 线程三个基本状态:就绪、执行、阻塞 线程五个基本操作:创建、就绪、运行、阻塞、终止 进程四种形式:主从式、会话式、消息或邮箱机制、共享存储区方式 进程是具有一定功能的程序关于某次数据集合上的一次运行活动,是系统进行资源分配和调度的一个独立单位。一个进程包含多个线程。 线程
阅读全文
摘要:JMM 就是 「Java内存模型」(java memory model)。因为在不同的硬件生产商和不同的操作系统下,内存的访问有一定的差异,所以会造成相同的代码运行在不同的系统上会出现各种问题。所以java内存模型(JMM)「屏蔽掉各种硬件和操作系统的内存访问差异,以实现让java程序在各种平台下都
阅读全文
摘要:「1.保证内存可见性」 可见性是指线程之间的可见性,一个线程修改的状态对另一个线程是可见的。也就是一个线程修改的结果,另一个线程马上就能看到。 「2.禁止指令重排序」 cpu 是和缓存做交互的,但是由于 cpu 运行效率太高,所以会不等待当前命令返回结果从而继续执行下一个命令,就会有乱序执行的情况发
阅读全文
摘要:上图是 set 家族整体的结构, set 继承于 Collection 接口,是一个「不允许出现重复元素,并且无序的集合」. HashSet 是「基于 HashMap 实现」的,底层「采用 HashMap 来保存元素」 元素的哈希值是通过元素的 hashcode 方法 来获取的, HashSet 首
阅读全文
摘要:1.ArrayList 是实现了基于「数组」的,存储空间是连续的。LinkedList 基于「链表」的,存储空间是不连续的。(LinkedList 是双向链表) 2.对于「随机访问」 get 和 set ,ArrayList 觉得优于 LinkedList,因为 LinkedList 要移动指针。
阅读全文
摘要:java 是一门「开源的跨平台的面向对象的」计算机语言. 跨平台是因为 java 的 class 文件是运行在虚拟机上的,其实跨平台的,而「虚拟机是不同平台有不同版本」,所以说 java 是跨平台的. 面向对象有几个特点: 1.「封装」 两层含义:一层含义是把对象的属性和行为看成一个密不可分的整体,
阅读全文
摘要:JMM 就是 「Java内存模型」(java memory model)。因为在不同的硬件生产商和不同的操作系统下,内存的访问有一定的差异,所以会造成相同的代码运行在不同的系统上会出现各种问题。所以java内存模型(JMM)「屏蔽掉各种硬件和操作系统的内存访问差异,以实现让java程序在各种平台下都
阅读全文
摘要:在 Java1.6 之前的版本中,synchronized 属于重量级锁,效率低下,「锁是」 cpu 一个「总量级的资源」,每次获取锁都要和 cpu 申请,非常消耗性能。 在 「jdk1.6 之后」 Java 官方对从 JVM 层面对 synchronized 较大优化,所以现在的 synchron
阅读全文
摘要:ReentrantLock 意为「可重入锁」,说起 ReentrantLock 就不得不说 AQS ,因为其底层就是「使用 AQS 去实现」的。 ReentrantLock有两种模式,一种是公平锁,一种是非公平锁。 公平模式下等待线程入队列后会严格按照队列顺序去执行 非公平模式下等待线程入队列后有可
阅读全文
摘要:1、「继承Thread类」,重写run()方法 public class Demo extends Thread{ //重写父类Thread的run() public void run() { } public static void main(String[] args) { Demo d1 =
阅读全文
摘要:判断线程池中的线程数「是否大于设置的核心线程数」 如果「没有满」,则「放入队列」,等待线程空闲时执行任务 如果队列已经「满了」,则判断「是否达到了线程池设置的最大线程数」 如果「没有达到」,就「创建新线程」来执行任务 如果已经「达到了」最大线程数,则「执行指定的拒绝策略」 如果「小于」,就「创建」一
阅读全文
摘要: 「强引用 StrongReference」 Object obj = new Object(); //只要obj还指向Object对象,Object对象就不会被回收 垃圾回收器不会回收被引用的对象,哪怕内存不足时,JVM 也会直接抛出 OutOfMemoryError,除非赋值为 null。 「
阅读全文
摘要:ThreadLocal其实就是「线程本地变量」,他会在每个线程都创建一个副本,那么在线程之间访问内部副本变量就行了,做到了线程之间互相隔离。 ThreadLocal 有一个「静态内部类 ThreadLocalMap」,ThreadLocalMap 又包含了一个 Entry 数组,「Entry 本身是
阅读全文
摘要:「1.对象头」: 对象头又分为 「MarkWord」 和 「Class Pointer」 两部分。 「MarkWord」:包含一系列的标记位,比如轻量级锁的标记位,偏向锁标记位,gc记录信息等等。 「ClassPointer」:用来指向对象对应的 Class 对象(其对应的元数据对象)的内存地址。在
阅读全文
摘要: 【1】sql展示: -- 创建表: create table t_student( sno int(6) primary key auto_increment, sname varchar(5) not null, sex char(1) default '男' check(sex='男' ||
阅读全文
摘要:MySQL数据库最初是由瑞典MySQL AB公司开发,2008年1月16号被Sun公司收购。2009年,SUN又被Oracle收购。MySQL是目前IT行业最流行的开放源代码的数据库管理系统,同时它也是一个支持多线程高并发多用户的关系型数据库管理系统。MySQL之所以受到业界人士的青睐,主要是因为其
阅读全文
摘要:一、概念介绍 大家中学都学过,就不过多介绍了,大致提两点: 质数又称素数。一个大于1的自然数,除了1和它自身外,不能被其他自然数整除的数叫做质数;否则称为合数。 0和1既不是质数也不是合数,最小的质数是2 二、方法介绍 1.最直观,但效率最低的写法 public static boolean isP
阅读全文
摘要: 使用开发者工具包不需要重启。监听内容改变。 1导入依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <version>2.4.5</v
阅读全文
摘要:jsp优点:1、功能强大,可以写java代码2、支持jsp标签(jsp tag)3、支持表达式语言(el)4、官方标准,用户群广,丰富的第三方jsp标签库缺点:性能问题。不支持前后端分离 freemarkerFreeMarker是一个用Java语言编写的模板引擎,它基于模板来生成文本输出。FreeM
阅读全文
摘要: Thymeleaf的主要目标是将优雅的自然模板带到开发工作流程中,并将HTML在浏览器中正确显示,并且可以作为静态原型,让开发团队能更容易地协作。Thymeleaf能够处理HTML,XML,JavaScript,CSS甚至纯文本。 长期以来,jsp在视图领域有非常重要的地位,随着时间的变迁,出现
阅读全文
摘要:问题描述:程序无法运行,无效的源发行版:12 错误。使用idea运行项目的时候,报出错误:无效的源发行版:XXX,这是因为idea设置的jdk版本和运行的项目版本的jdk版本号不匹配。如果项目jdk版本是12,idea环境设置的jdk版本为1.8,就会报错。 解决:按照下面的方法一个个检查,都换成与
阅读全文
摘要:五个角色: 注册中心registry:服务注册与发现 服务提供者provider:暴露服务 服务消费者consumer:调用远程服务 监控中心monitor:统计服务的调用次数和调用时间 容器container:服务允许容器 调用流程: container容器负责启动,加载。运行provider p
阅读全文
摘要:1.轮询法 将请求按照顺序轮流地分配到后端服务器上,它均衡地对待后端的每一台服务器,而不关心服务器实际的连接数和当前的系统负载 2.随机法 通过系统的随机算法,根据后端服务器的列表大小值来选取其中的一台服务器进行访问。由概率统计理论可以得知,随着客户端调用服务端的次数增多,其实际效果越来越接近平均分
阅读全文
摘要: @Controller @Controller注解在类上,表明这个类是Spring MVC里的Controller,将其声明为Spring的一个Bean,Dispatch Servlet会自动扫描注解了此注解的类,并将Web请求映射到注解了@RequestMapping的方法上,需要注意的是,在
阅读全文
摘要:Kafka最初考虑的问题是,customer应该从brokes拉取消息还是brokers将消息推送到consumer,也就是pull还push。 Kafka遵循了一种大部分消息系统共同的传统的设计:producer将消息推送到broker,consumer从broker拉取消息。 一些消息系统比如S
阅读全文
摘要:Broker:rabbitmq的服务节点 Queue:队列,是RabbitMQ的内部对象,用于存储消息。RabbitMQ中消息只能存储在队列中。生产者投递消息到队列,消费者从队列中获取消息并消费。多个消费者可以订阅同一个队列,这时队列中的消息会被平均分摊(轮询)给多个消费者进行消费,而不是每个消费者
阅读全文
摘要:springCloud是一套微服务组件, 常用的Eureka,Ribbon,Hystrix,Feign,Gateway,Config,Bus(消息总线)等等。 一、Eureka 1、Eureka:提供服务注册和发现功能 1、服务注册:在服务治理框架中,通常都会构建一个注册中心,每个服务单元向注册中心
阅读全文
摘要:1、工厂模式 在各种BeanFactory以及ApplicationContext创建中都有用到 2、模板模式 在各种BeanFactory以及ApplicationContext创建中都有用到 3、代理模式 SpringAOP利用了AspectJ AOP实现的,Aspectj AOP的底层用的就是
阅读全文
摘要: Spring支持五个作用域:singleton、prototype、request、session、global session 1.singleton:默认作用域Spring IOC容器仅存在一个Bean实例,Bean以单例方式存在,在创建容器时就同时自动创建了一个Bean对象。作用域范围是A
阅读全文
摘要:线程池中阻塞队列的作用:1.⼀般的队列只能保证作为⼀个有限⻓度的缓冲区,如果超出了缓冲⻓度,就⽆法保留当前的任务了,阻塞队列通过阻塞可以保留住当前想要继续⼊队的任务。2.阻塞队列可以保证任务队列中没有任务时阻塞获取任务的线程,使得线程进⼊wait状态,释放cpu资源。3.阻塞队列⾃带阻塞和唤醒的功能
阅读全文
摘要:1、降低资源消耗;提高线程利用率,降低创建和销毁线程的消耗。 2、提高响应速度;任务来了,直接有线程可用可执行,而不是先创建线程,再执行 3、提高线程的可管控性;线程是稀缺资源,使用线程池可以统一分配调用监控 1)corePoolSize代表核心线程数,也就是正常情况下创建工作的线程数,这些线程创建
阅读全文
摘要:1.并行和并发 并行:即同时进行,指在同一时刻,有多条指令在多个处理器上同时执行。所以无论从微观还是从宏观来看,二者都是一起执行的。 并发:指在同一时刻只能有一条指令执行,但多个进程指令被快速的轮换执行,使得在宏观上具有多个进程同时执行的效果,但在微观上并不是同时执行的,只是把时间分成若干段,使多个
阅读全文
摘要: 串行 一个任务执行完在执行下一个任务。 比如先吃饭,吃完了去打游戏。 串行就是简单地one by one的思路。 并行 两个任务同一时间执行。 比如一只手往嘴里塞饭,一只手打游戏。 并行是利用多核CPU的优势,真正意义上的同时执行两件不相干的事。 并发 两个任务同时执行。 比如吃一口饭,打一下游
阅读全文
摘要:java类加载器有:1、引导类加载器;2、拓展类加载器;3、系统类加载器;4、用户自定义类加载器。其中,引导类加载器(Boostrap ClassLoader),又叫启动类加载器,由原生代码(如C语言)编写,不继承自java.lang.ClassLoader。负责加载核心Java库,存储在<JAVA
阅读全文
摘要:1、先准备一个基本的容器对象,包含一些map结构的集合,用来方便后续过程中存储具体的对象 2、进行配置文件的读取工作或者注解的解析工作,将需要创建的bean对象都封装成BeanDefinition对象存储在容器中 3、容器将封装好的BeanDefinition对象通过反射的方式进行实例化,完
阅读全文
摘要:1 HashMap和Hashtable都是java.util包下的类2 HashMap和Hashtable都实现了Map接口,存储方式都是key-value形式3 HashMap和Hashtable同时也都实现了Serializable和Cloneable接口4 HashMap和Hashtable的
阅读全文
摘要:Java中的集合包括三大类,它们是Set(集)、List(列表)和Map(映射),它们都处于java.util包中,Set、List和Map都是接口,它们有各自的实现类。Set的实现类主要有HashSet和TreeSet,List的实现类主要有ArrayList Collection是最基本的集合接
阅读全文
摘要:1. String类是不可变类,即一旦一个String对象被创建后,包含在这个对象中的字符序列是不可改变的,直至这个对象销毁。 2.StringBuffer类则代表一个字符序列可变的字符串,可以通过append、insert、reverse、setChartAt、setLength等方法改变其内容。
阅读全文
摘要:1.联系:底层都是数组的扩容 2.区别:ArrayList底层扩容长度为原数组的1.5 ; Vector底层扩容长度为原数组的2倍 3.ArrayList倍线程不安全,效率高 ; Vector线程安全,效率低(淘汰) 4.都是数组,数组优点:查询效率高 ; 数组缺点:删除,增加元素效率低 ; 特点:
阅读全文
摘要:1.GET用于信息获取,而且应该是安全的和幂等的。 2.POST表示可能修改,改变服务器上的资源的请求。 3.GET请求的数据会附在URL之后。 4.GET方式提交的数据取决于URL长度的限制,理论上POST没有限制,可传较大量的数据。对参数的数据类型GET只接受ASCII字符,而POST即可是字符
阅读全文
摘要: 用户只需要向Spring Security项目中发送/logout退出请求即可。 1.退出实现 实现退出非常简单,只要在页面中添加/logout的超链接即可。 <a href="/logout">退出登录 为了实现更好的效果,通常添加退出的配置。默认的退出url为/logout,退出成功后跳转到
阅读全文
摘要: 在配置类中一直存在这样一行代码:http.csrf().disable();如果没有这行代码导致用户无法被认证。这行代码的含义是:关闭csrf防护。 1.什么是CSRF CSRF(Cross-site request forgery)跨站请求伪造,也被称为“One Click Attack”
阅读全文
摘要: 当进行自定义登录逻辑时需要用到之前讲解的UserDetailsService和PasswordEncoder。但是Spring Security要求:当进行自定义登录逻辑时容器内必须有PasswordEncoder实例。所以不能直接new对象。 1.编写配置类 新建类com.msb.conf
阅读全文
摘要: Spring Security要求容器中必须有PasswordEncoder实例。所以当自定义登录逻辑时要求必须给容器注入PaswordEncoder的bean对象 1.接口介绍 encode():把参数按照特定的解析规则进行解析。 matches()验证从存储中获取的编码密码与编码后提交的
阅读全文
摘要:当什么也没有配置的时候,账号和密码是由Spring Security定义生成的。而在实际项目中账号和密码都是从数据库中查询出来的。 所以我们要通过自定义逻辑控制认证逻辑。 如果需要自定义逻辑时,只需要实现UserDetailsService接口即可。接口定义如下: 1.返回值 返回值User
阅读全文
摘要: 1.概括 Spring Security是一个高度自定义的安全框架。利用Spring IoC/DI和AOP功能,为系统提供了声明式安全访问控制功能,减少了为系统安全而编写大量重复代码的工作。 使用Spring Secruity的原因有很多,但大部分都是发现了javaEE的Servlet规
阅读全文
摘要:前后端分离属于软件架构的一种。其核心思想是把前端项目(Node.js实现的)和后端项目独立部署到不同的服务器上,前端项目在通过Ajax请求服务器端项目Restful接口实现数据交互。 使用前后端分离架构的项目在项目组中往往配备前端工程师和后端工程师。后端工程师就是我们,对于我们我们来说,不需要在项目
阅读全文
摘要:JSP的性能问题 有人都会认为JSP的执行性能会和Servlet相差很多,其实执行性能上的差别只在第一次的执行。因为JSP在执行第一次后,会被编译成Servlet的类文件,即.class,当再重复调用执行时,就直接执行第一次所产生的Servlet,而不再重新把JSP编译成Servelt。除了第一次的
阅读全文
摘要: JSTL核心标签 认识JSTL 为什么需要学习JSTL 通过之前的案例我们发现,就算在JSP中可以使用EL表达式取出域对象中的数据,但是仍然避免不了还是要在页面中书写一些java代码.这种嵌入JAVA代码的处理比较繁琐,容易出错,且代码不容易维护. 什么是JSTL JSTL(Java serve
阅读全文
摘要: JSTL格式化标签 格式化标签库 格式化标签库,也叫作fmt标签,是JTSL中的第二大组成部分,主要解决数据显示格式问题,让JSP页面的数据格式更加规范 格式化标签库导入的语句为: <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl
阅读全文
摘要:MVC架构模式及案例开发 MVC模式的介绍 什么是MVC MVC是一种项目架构型模式,它本身并不引入新的功能,只是用来指导我们改善应用程序的架构,使得应用的模型和视图相分离,从而得到更好的开发和维护效率。 在MVC模式中,应用程序被划分成了模型(Model)、视图(View)和控制器(Control
阅读全文
摘要: JSP中的变量问题 在JSP上可以通过<%%> 和<%!%>两种方式书写代码,那么两种方式中书写的java代码在转译之后生成的java文件中的位置是不一样,一个在_JSPService方法中,一个作为类的成员,以定义变量举例 【示例4】在JSP中定义局部变量和成员变量 <%@ page cont
阅读全文
摘要: Servlet同样也可以向浏览器动态响应HTML,但是需要大量的字符串拼接处理,在JAVA代码上大量拼接HTML字符串是非常繁琐耗时的一件事,它涉及到HTML本身的字符串处理,还涉及到css样式代码和文件,以及js脚本代码和文件,HTML中的各种外部引入路径等等,处理起来相当的麻烦 <%@ pa
阅读全文
摘要: JSP(全称Java Server Pages)是由Sun公司主导创建的一种动态网页技术标准。JSP部署于网络服务器上,可以响应客户端发送的请求,并根据请求内容动态地生成HTML、XML或其他格式文档的WEB网页,然后返回给请求者。简单来说:JSP(JavaServer Pages)是一种动态页
阅读全文
摘要: HttpServletRequest HttpServletRequest对象代表客户端浏览器的请求,当客户端浏览器通过HTTP协议访问服务器时,HTTP请求中的所有信息都会被Tomcat所解析并封装在这个对象中,通过这个对象提供的方法,可以获得客户端请求的所有信息。 1.获取请求行信息 req
阅读全文
摘要: include处理流程: 1如果目标资源为Servlet或JSP,就调用他们的相应的service()方法,把该方法产生的响应正文添加到源Servlet的响应结果中;如果目标组件为HTML文档,就直接把文档的内容添加到源Servlet的响应结果中。 2返回到源Servlet的服务方法中,继续执行
阅读全文
摘要: 响应重定向中的路径 响应重定向和请求转发中的路径略有不同,具体演示代码如下 准备Servlet package com.msb.test; import javax.servlet.RequestDispatcher; import javax.servlet.ServletContext; i
阅读全文
摘要: 案例:通过HttpSession判断用户是否登录 需求:实现登录一次即可,在一次会话内,可以反复多次访问WEB-INF/ welcome.html,如果没有登录过,跳转到登录页,登录成功后,可以访问 项目结构: 组件介绍: login.html <!DOCTYPE html> <html lan
阅读全文
摘要: Application域 有效范围 当前web服务内,跨请求,跨会话 生命周期 创建 项目启动 使用 项目运行任何时间有效 销毁 项目关闭 测试代码 Application域中放入数据 package com.msb.testApplication; import javax.servlet.S
阅读全文
摘要: Session域 有效范围 单次会话内有效,可以跨多个请求 生命周期 创建 会话的产生,第一次发生请求,会话的开始 使用 本次会话之内,浏览器和服务器之间发生多次请求和响应有效 销毁 会话结束,如:浏览器失去JSESSIONID、到达最大不活动时间、手动清除 测试代码 Session域中放入数据
阅读全文
摘要: 4.1 Request域 有效范围 一次请求内有效,请求转发时数据可以传递,除此之外该域没有办法实现数据共享 生命周期 创建 每发生一次请求创建一个独立的请求域 使用service方法中或者请求转发有效 销毁 请求结束,已经向浏览器响应数据 测试代码 向request域中放入数据 package
阅读全文
摘要:什么是域对象? 那些能放数据并存储传递数据作为数据存放区域的对象 能够存储数据,获取数据,传递数据的对象 Servlet三大域对象 Request域 HTTPServletRequest 一次请求/请求转发Session域 HTTPSession 一次会话(跨请求)Application域 Serv
阅读全文
摘要: HttpSession对象 HttpSession是一种保存少量信息至服务器端的一种技术,第一请求时,服务器会创建HttpSession,我们可以在HttpSession对象中保存一些关于用户的状态信息,并将HttpSession的JSESSIONID以Cookie形式响应给浏览器 ,第二次请求
阅读全文
摘要: Cookie是一种保存少量信息至浏览器的一种技术,第一请求时,服务器可以响应给浏览器一些Cookie信息,第二次请求,浏览器会携带之前的cookie发送给服务器,通过这种机制可以实现在浏览器端保留一些用户信息.为服务端获取用户状态获得依据 3.2.1 Cookie对象的特点 Ø Cookie使用
阅读全文
摘要:Cookie对象与HttpSession对象简介 Cookie对象与HttpSession对象的作用是维护客户端浏览器与服务端的会话状态的两个对象。由于HTTP协议是一个无状态的协议,所以服务端并不会记录当前客户端浏览器的访问状态,但是在有些时候我们是需要服务端能够记录客户端浏览器的访问状态的,如获
阅读全文
摘要: 响应重定向中的路径 响应重定向和请求转发中的路径略有不同,具体演示代码如下 准备Servlet package com.msb.test; import javax.servlet.RequestDispatcher; import javax.servlet.ServletContext; i
阅读全文
摘要: 项目结构 测试代码 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <!-- base标签的作用是在相对路径之前自动补充base[href]中的值 如果base标签不写,那么默
阅读全文
摘要: forword处理流程: 1清空Response存放响应正文数据的缓冲区。 2如果目标资源为Servlet或JSP,就调用它们的service()方法,把该方法产生的响应结果发送到客户端;如果目标资源文件系统中的静态HTML文档,就读取文档中的数据把它发送到客户端。 forword处理特点: 1
阅读全文
摘要:基于注解式开发Servlet 在Servlet3.0以及之后的版本中支持注解式开发Servlet。对于Servlet的配置不在依赖于web.xml配置文件而是使用@WebServlet将一个继承于javax.servlet.http.HttpServlet的类定义为Servlet组件。 @WebSe
阅读全文
摘要: URL的匹配规则 精确匹配 精确匹配是指<url-pattern>中配置的值必须与url完全精确匹配。 <servlet-mapping> <servlet-name>demoServlet</servlet-name> <url-pattern>/demo.do</url-pattern> <
阅读全文
摘要: ServletContext和ServletConfig ServletContext对象 ServletContext对象介绍 ServletContext官方叫Servlet上下文。服务器会为每一个Web应用创建一个ServletContext对象。这个对象全局唯一,而且Web应用中的所有S
阅读全文
摘要: Servlet的生命周期 Servlet的生命周期是由容器管理的,分别经历四各阶段: 阶段 次数 时机 创建 1次 第一次请求 初始化 1次 实例化之后 执行服务 多次 每次请求 销毁 1次 停止服务 当客户端浏览器第一次请求Servlet时,容器会实例化这个Servlet,然后调用一次init
阅读全文
摘要:Servlet的继承结构 Servlet接口 1.init(),创建Servlet对象后立即调用该方法完成其他初始化工作。 2.service(),处理客户端请求,执行业务操作,利用响应对象响应客户端请求。 3.destroy(),在销毁Servlet对象之前调用该方法,释放资源。 4.getSer
阅读全文
摘要: 响应重定向 生活案例: 张三向李四借钱1000元,李四说”我也没有,要不你去王五哪里看看?”,然后张三根据李四的指示,去找王五借钱 响应重定向是通过HttpServletResponse对象sendRedirect(“路径”)的方式实现是,是服务器通知浏览器,让浏览器去自主请求其他资源的一种方式
阅读全文
摘要:Servlet介绍 Servlet是Server Applet的简称,称为服务端小程序,是JavaEE平台下的技术标准,基于Java语言编写的服务端程序。Web容器或应用服务器实现了Servlet标准所以Servlet需运行在Web容器或应用服务器中。Servlet主要功能在于能在服务器中执行并生成
阅读全文
摘要: Servlet的生命周期 Servlet的生命周期是由容器管理的,分别经历四各阶段: 阶段 次数 时机 创建 1次 第一次请求 初始化 1次 实例化之后 执行服务 多次 每次请求 销毁 1次 停止服务 当客户端浏览器第一次请求Servlet时,容器会实例化这个Servlet,然后调用一次init
阅读全文
摘要:Servlet的继承结构 Servlet接口 1.init(),创建Servlet对象后立即调用该方法完成其他初始化工作。 2.service(),处理客户端请求,执行业务操作,利用响应对象响应客户端请求。 3.destroy(),在销毁Servlet对象之前调用该方法,释放资源。 4.getSer
阅读全文
摘要: Servlet开发流程 在后台随机生成一个整数 当浏览器请求一个Servlet时 如果生成的是奇数,返回"happy new year" 如果生成的是偶数,返回"happy birthday" 1创建一个JAVAWEB项目,并在项目中开发一个自己的Servlet ,继承HttpServlet 类
阅读全文
摘要:Servlet介绍 Servlet是Server Applet的简称,称为服务端小程序,是JavaEE平台下的技术标准,基于Java语言编写的服务端程序。Web容器或应用服务器实现了Servlet标准所以Servlet需运行在Web容器或应用服务器中。Servlet主要功能在于能在服务器中执行并生成
阅读全文
摘要:选择Java Enterprise 1_Project SDK选项 推荐 1.8 如果没有SDK 可以通过后面的 NEW按钮选择自己的JDK安装路径即可 (注意选择的是bin的上一层)2_Java EE version 推荐JAVA EE 83_Application Server 关联Tomcat
阅读全文
摘要:响应的主要组成部分 响应行 HTTP/1.1 200 1协议 2响应状态码 200 >> OK 正常响应 304 重定向 404 请求的资源没有找到 500服务器出现异常没有办法响应响应头响应体 响应行 响应行:HTTP/1.1 200 和请求消息相比,响应消息多了一个“响应状态码”,它以“清晰明确
阅读全文
摘要:HTTP协议的请求 Ø 当你在浏览器输入URL http://www.mashibing.com 的时候,浏览器发送一个Request去获取http://www.mashibing.com 的html. 服务器把Response发送回给浏览器。 Ø 浏览器分析Response中的 HTML,发现其中
阅读全文
摘要:协议 Protocol 合同,共同遵守的规则 A给B发送一段信息 内容: what do you wanna eat for dinner; 晚饭想吃什么规则: 英文 中文 应用层协议 数据如何解析如何使用 http ftp ... ...方式: 微信 QQ 短信 传输层协议 数据如何发送和接收 t
阅读全文
摘要:Tomcat目录结构与介绍 bin bin目录主要是用来存放tomcat的命令文件,主要有两大类,一类是以.sh结尾的(linux命令),另一类是以.bat结尾的(windows命令)。 conf conf目录主要是用来存放tomcat的一些配置文件。 lib lib目录主要用来存放tomcat运行
阅读全文
摘要:Tomcat体系结构图 Tomcat组件 Server组件 启动一个server实例(即一个JVM),它监听在8005端口以接收shutdown命令。Server的定义不能使用同一个端口,这意味着如果在同一个物理机上启动了多个Server实例,必须配置它们使用不同的端口。 <Server port=
阅读全文
摘要:Tomcat目录结构与介绍 bin bin目录主要是用来存放tomcat的命令文件,主要有两大类,一类是以.sh结尾的(linux命令),另一类是以.bat结尾的(windows命令)。 conf conf目录主要是用来存放tomcat的一些配置文件。 lib lib目录主要用来存放tomcat运行
阅读全文
摘要:什么是JavaEE JavaEE(Java Enterprise Edition),Java企业版,是一个用于企业级web开发平台。最早由Sun公司定制并发布,后由Oracle负责维护。JavaEE平台规范了在开发企业级web应用中的技术标准. 在JavaEE平台共包含了13个技术规范(随着Java
阅读全文
摘要: 一级存储是SqlSession上的缓存,默认开启,是一种内存型缓存,不要求实体类对象实现Serializable接口。 缓存中的数据使用键值对形式存储数据 namespace+sqlid+args+offset>>> hash值作为键,查询出的结果作为值 测试 代码 @Test public v
阅读全文
摘要: 项目结构:注意文件路径和文件位置!!! 准备接口和mapper映射文件 EmpMapper接口 package com.msb.mapper; import com.msb.pojo.Emp; import java.util.List; /** * @Author: Ma HaiYang *
阅读全文
摘要: Mapper映射文件 <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-ma
阅读全文
摘要: 1单个基本数据类型 2多个基本数据类型 3单个引用数据类型 4map集合数据类型 5多个引用数据类型 接口 package com.msb.mapper; import com.msb.pojo.Emp; import org.apache.ibatis.annotations.Param; i
阅读全文
摘要: 项目结构:注意文件路径和文件位置!!! 准备接口和mapper映射文件 EmpMapper接口 package com.msb.mapper; import com.msb.pojo.Emp; import java.util.List; /** * @Author: Ma HaiYang *
阅读全文
摘要: SqlSession对象本身的API中就有三个查询方法,分别能够实现如下查询方式 1返回单个对象 selectOne 2返回对象List集合 selectList 3返回对象Map集合 selectMap 接下来我们就对这三个方法进行一个快速的学习 创建Emp实体类 @AllArgsConstr
阅读全文
摘要: 上一次课我们采用的上面的方式进行图片存储。图片在哪个项目中上传的图片就存储到哪个项目所在的服务器。其他项目模块通过HTTP请求进行获取图片。 虽然说可以实现不同模块之间图片的访问,但是问题也很明显,包含如下问题: 图片存储过于分散。 图片多的服务器压力比较大,可能会影响其他功能。 存储到
阅读全文
摘要: 1 时序图 2 流程说明 客户端访问Tracker Tracker 返回Storage的ip和端口 客户端直接访问Storage,把文件内容和元数据发送过去。 Storage返回文件存储id。包含了组名和文件名 七、Fastdfs-java-client 1 添加依赖 <dependencies
阅读全文
摘要: 1 KindEditor简介 KindEditor是基于JavaScript的插件。里面包含了丰富的组件,如:多文件上传组件、富文本编辑框。 使用KindEditor可以大大的降低页面开发难度。 2 文件上传参数及返回值说明 3 代码示例 <!DOCTYPE html PUBLIC "-//
阅读全文
摘要: 1 架构图 2 角色 Client:客户端。使用java语言编写的项目属于客户端。 Tracker Server:跟踪服务器,主要做调度工作,在访问上起负载均衡的作用。在内存中记录集群中group和storage server的状态信息,是连接Client和Storage server的
阅读全文
摘要: 1 分类 1.1 通用分布式文件系统 和传统的本地文件系统(如ext3、NTFS等)相对应。典型代表:lustre、MooseFS 1.1.1 优点 标准文件系统操作方式,对开发者门槛较低 1.1.2 缺点 系统复杂性较高,需要支持若干标准的文件操作,如:目录结构、文件读写权限、文件
阅读全文
摘要:-project项目的根目录 -静态资源文件/jsp -WEB-INF 受保护的资源目录 -lib jar包目录 -classes java字节码目录 -web.xml项目的配置文件 -其他资源 层级关系图如下 结构图1 结构图2
阅读全文
摘要:协议 Protocol 合同,共同遵守的规则 A给B发送一段信息 内容: what do you wanna eat for dinner; 晚饭想吃什么规则: 英文 中文 应用层协议 数据如何解析如何使用 http ftp ... ...方式: 微信 QQ 短信 传输层协议 数据如何发送和接收 t
阅读全文
摘要: Tomcat配置文件介绍 Tomcat 的配置文件由4个xml组成,分别是 context.xml、web.xml、server.xml、tomcat-users.xml。每个文件都有自己的功能与配置方法。 context.xml Context.xml 是 Tomcat 公用的环境配置。 To
阅读全文
摘要:什么是JavaEE JavaEE(Java Enterprise Edition),Java企业版,是一个用于企业级web开发平台。最早由Sun公司定制并发布,后由Oracle负责维护。JavaEE平台规范了在开发企业级web应用中的技术标准. 在JavaEE平台共包含了13个技术规范(随着Java
阅读全文
摘要:认识Echarts Apache ECharts 是一个正在由 Apache 孵化器赞助的 Apache 开源基金会孵化的项目。官方网址:https://echarts.apache.org/zh/index.html 2018年3月份,全球著名开源社区 Apache 基金会宣布“百度开源的 ECh
阅读全文
摘要: 什么是DOM编程 简单来说:DOM编程就是使用document对象的API完成对网页HTML文档进行动态修改,以实现网页数据和样式动态变化效果的编程. 什么是document document对象代表整个html文档,可用来访问页面中的所有元素,是最复杂的一个dom对象,可以说是学习好dom编程
阅读全文
摘要: location对象 location对象,是window对象的一个属性,代表浏览器上URL地址栏,使用location对象可以操作地址栏 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <script>
阅读全文
摘要: 数组的常用方法 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <script> var arr=[1,2,3,4,5,6,7,8,9]; var index =arr.indexOf(7);//查询元素索
阅读全文
摘要:前端内容三大基础性技术 Javascript是一种由Netscape(网景)的LiveScript发展而来的原型化继承的面向对象的动态类型的区分大小写的客户端脚本语言,主要目的是为了解决服务器端语言,JavaScript 的正式名称是 "ECMAScript"。这个标准由 ECMA 组织发展和维护。
阅读全文
摘要:JS特点 JS是运行在浏览器上的一种脚本语言1.脚本语言 脚本语言是一种简单的程序,规模小,不需要编译,运行快,是由一些ASCII字符构成,可以使用任何一种文本编辑器编写。脚本语言是指在web浏览器内有解释器解释执行的编程语言,每次运行程序的时候,解释器会把程序代码翻译成可执行的格式。一些程序语言(
阅读全文
摘要:它的原理就是配置一些常用代码字母缩写,在输入简写时可以出现你预定义的固定模式的代码,使得开发效率大大提高,同时也可以增加个性化。最简单的例子就是在Java中输入sout会出现System.out.println(); (一)所处位置:(1)Live Templates(2)Postfix Compl
阅读全文
摘要:调试在开发中大量应用:【1】Debug的优化设置:更加节省内存空间:设置Debug连接方式,默认是Socket。 Shared memory是Windows 特有的一个属性,一般在Windows系统下建议使用此设置,内存占用相对较少。 【2】常用断点调试快捷键: 一步一步的向下运行代码,不会走入任何
阅读全文
摘要:【1】创建内容:alt+insert【2】main方法:psvm【3】输出语句:sout【4】复制行:ctrl+d【5】删除行:ctrl+y 【6】代码向上/下移动:Ctrl + Shift + Up / Down【7】搜索类: ctrl+n【8】生成代码 :alt + Insert(如构造函数等,
阅读全文
摘要:【1】项目下内容:➢工程下的src类似于Eclipse下的src目录,用于存放代码。。➢工程下的.idea 和TestProject.iml文件都是IDEA工程特有的。类似于Eclipse 工程下的settings、.classpath、.project 等。【2】配置:
阅读全文
摘要:什么是分页? 简单来说:大量数据无法一次性全部显示在网页上?怎么办?只能选取其中的一部分,将大量数据分成好几段,每一段我们用一个网页显示,也就是一页,在页面上我们可以手动控制我们要选择的页面.分页就是将大量数据分成很多页显示的一种处理手段. 分页有什么好处? 1通过分页,我们不用一次性将所有的数据查
阅读全文
摘要: Session域共有四个监听器接口,分别是 HttpSessionListener HttpSessionAttributeListener HttpSessionBindingListener HttpSessionActivationListener 接下来我们就认识一些每个接口和接口中每个
阅读全文
摘要: 什么是监听器? 类似于前端的事件绑定,java中的监听器用于监听web应用中某些对象、信息的创建、销毁、增加,修改,删除等动作的发生,然后作出相应的响应处理。当范围对象的状态发生变化的时候,服务器自动调用监听器对象中的方法。常用于统计在线人数和在线用户,系统加载时进行信息初始化,统计网站的访问量
阅读全文
摘要: 认识Requet域监听器 Requet域共有两个监听器接口,分别是 ServletRequestListener ServleRequestAttributeListener 接下来我们就认识一些每个接口和接口中每个方法的用处 定义监听器类 package com.msb.listener; i
阅读全文
摘要:过滤器Filter简介 Filter也称之为过滤器,Web开发人员通过Filter技术,对web服务器管理的所有web资源:例如Jsp, Servlet, 静态图片文件或静态 html 文件等进行拦截,从而实现一些特殊的功能。例如实现URL级别的权限访问控制、过滤敏感词汇、压缩响应信息等一些高级功能
阅读全文
摘要: 采用三步走策略使用filter 1开发后台资源 静态资源(html,css … …)或者动态资源(Servlet,Jsp) 2开发Filter 3在web.xml中配置Filter拦截哪些资源 开发Servlet 定义两个servlet package com.msb.servlet; impo
阅读全文
摘要:Filter也称之为过滤器,它是Servlet技术中最实用的技术,Web开发人员通过Filter技术,对web服务器管理的所有web资源:例如Jsp, Servlet, 静态图片文件或静态 html 文件等进行拦截,从而实现一些特殊的功能。例如实现URL级别的权限访问控制、过滤敏感词汇、压缩响应信息
阅读全文
摘要: AJAX之验证用户名是否被占用 JS表单验证只能校验格式是否正确,但是无法验证用户名是否已经存在,这个就需要后台程序接受到数据后通过查询才能够完成的,那么这里就非常适用于使用异步方式校验,保证用于数据提交后,业务完成的成功率.提升用于体验感 页面代码 <%@ page contentType="
阅读全文
摘要: AJAX数据格式处理 响应普通文本数据 如果服务器给我们响应的数据非常简答,那么使用字符串就好了,不需要我们做复杂的处理,后台编码也简单. 页面代码 <%@ page contentType="text/html;charset=UTF-8" language="java" %> <html>
阅读全文
摘要:2_AJAX介绍 AJAX 即 “Asynchronous Javascript And XML”(异步 JavaScript和 XML),是指一种创建交互式、快速动态网页应用的网页开发技术,无需重新加载整个网页的情况下,能够更新部分网页的技术。通过在后台与服务器进行少量数据交换,AJAX 可以使网
阅读全文
摘要:jQuery.ajax()属性详解 $.ajax()方法中有很多属性可以供我们使用,其中很多属性都有默认值,那么这些属性都有哪些,处理的是什么事情?接下来给大家一一介绍一下 1.url:要求为String类型的参数,(默认为当前页地址)发送请求的地址。 2.type: 要求为String类型的参数,
阅读全文
摘要:【1】代码托管中心是干嘛的呢?我们已经有了本地库,本地库可以帮我们进行版本控制,为什么还需要代码托管中心呢?它的任务是帮我们维护远程库,下面说一下本地库和远程库的交互方式,也分为两种:(1)团队内部协作 (2)跨团队协作 【2】托管中心种类: 局域网环境下: 可以搭建 GitLab服务器作为代码托管
阅读全文
摘要:【1】Git技术:公司必备,一定要会 【2】Git概念: Git是一个免费的、开源的分布式版本控制系统,可以快速高效地处理从小型到大型的项目。 【3】什么是版本控制? 版本控制是一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统 。 【4】为什么要使用版本控制? 软件开发中采用版本控
阅读全文
摘要:Maven的命令非常多,我们只是讲解常用的几个:(所有命令都可以在控制台运行的)❀ install 本地安装, 包含编译,打包,安装到本地仓库 编译 - javac 打包 - jar, 将java代码打包为jar文件 安装到本地仓库 - 将打包的jar文件,保存到本地仓库目录中。 ❀ clean 清
阅读全文
摘要: Maven在打包时默认只将src/main/resources里的配置文件拷贝到项目中并做打包处理,而非resource目录下的配置文件在打包时不会添加到项目中。 我们的配置文件,一般都放在:src/main/resources 然后打包后配置文件就会在target的classes下面放着: 测
阅读全文
摘要:当我们开发的工程拥有2个以上模块的时候,每个模块都是一个独立的功能集合。比如某大学系统中拥有搜索平台,学习平台,考试平台等。开发的时候每个平台都可以独立编译,测试,运行。这个时候我们就需要一个聚合工程。 在创建聚合工程的过程中,总的工程必须是一个POM工程(Maven Project)(聚合项目必须
阅读全文
摘要:依赖范围就决定了你依赖的坐标 在什么情况下有效,什么情况下无效:❀compile这是默认范围。如果没有指定,就会使用该依赖范围。表示该依赖在编译和运行时都生效。 ❀provided已提供依赖范围。使用此依赖范围的Maven依赖。典型的例子是servlet-api,编译和测试项目的时候需要该依赖,但在
阅读全文
摘要:依赖 【1】依赖关系:即A工程开发或运行过程中需要B工程提供支持,则代表A工程依赖B工程。 在这种情况下,需要在A项目的pom.xml文件中增加下属配置定义依赖关系。 通俗理解:就是导jar包。 B工程可以是自己的项目打包后的jar包,也可以是中央仓库的jar包。 【2】如何注入依赖呢? 在pom.
阅读全文
摘要:标准目录结构: ❀src/main/java 这个目录下储存java源代码 ❀src/main/resources 储存主要的资源文件。比如xml配置文件和properties文件 ❀src/test/java 储存测试用的类,比如JUNIT的测试一般就放在这个目录下面因为测试类本身实际是不属于项目
阅读全文
摘要:Maven仓库是基于简单文件系统存储的,集中化管理Java API资源(构件)的一个服务。 仓库中的任何一个构件都有其唯一的坐标,根据这个坐标可以定义其在仓库中的唯一存储路径。得益于 Maven 的坐标机制,任何 Maven项目使用任何一个构件的方式都是完全相同的。 Maven 可以在某个位置统一存
阅读全文
摘要:Maven是 Apache 开源组织奉献的一个开源项目。Maven 这个词可以翻译为“知识的积累”,也可以翻译为“专家”或“内行”。Maven 的本质是一个项目管理工具,将项目开发和管理过程抽象成一个项目对象模型(POM)。开发人员只需做一些简单的配置,就可以批量完成项目的构建、报告和文档的生成工作
阅读全文
摘要:【1】IDEA默认整合了Maven: 【2】下载地址:http://maven.apache.org/ 【3】目录结构: bin:存放的是执行文件,命令 在IDEA中可以直接集成Maven: conf目录:下面有一个非常重要的配置文件--》settings.xml 》maven的核心配置文件/全局配
阅读全文
摘要: spring5框架自带了通用的日志封装,也可以整合自己的日志 1)spring移除了 LOG4jConfigListener,官方建议使用log4j2 2)spring5整合log4j2 导入log4j2依赖 <!--log4j2 依赖--> <!--<dependency> <groupId>
阅读全文
摘要: 创建配置类 package com.msb.config; import com.alibaba.druid.pool.DruidDataSource; import org.springframework.beans.factory.annotation.Value; import org.s
阅读全文
摘要: applicationContext中,通过AOP实现事务的控制 <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http:/
阅读全文
摘要: 事务的管理应该放在我们的service层进行处理 spring中有两种事务的管理方式 1 编程式事务管理(了解) 2 声明式事务管理(掌握) 基于注解方式实现(掌握) XML方式实现(了解) Spring声明式事务的实现方式,底层就是AOP,AOP的底层就是动态代理 Spring事务管理相关的A
阅读全文
摘要: spring5框架自带了通用的日志封装,也可以整合自己的日志 1)spring移除了 LOG4jConfigListener,官方建议使用log4j2 2)spring5整合log4j2 导入log4j2依赖 <!--log4j2 依赖--> <!--<dependency> <groupId>
阅读全文
摘要: 创建配置类 package com.msb.config; import com.alibaba.druid.pool.DruidDataSource; import org.springframework.beans.factory.annotation.Value; import org.s
阅读全文
摘要: 通过张三给李四转账案例演示事务的控制 1 数据库中准备表格 applicationContext.xml jdbc.properties 见上节课 2 项目中准备实体类 package com.msb.pojo; import lombok.AllArgsConstructor; import
阅读全文
摘要:1. 事务的概念 事务(Transaction)指的是一个操作序列,该操作序列中的多个操作要么都做,要么都不做,是一个不可分割的工作单位,是数据库环境中的逻辑工作单位,由DBMS中的事务管理子系统负责事务的处理。 目前常用的存储引擎有InnoDB(MySQL5.5以后默认的存储引擎)和MyISAM(
阅读全文
摘要: 一次连接,操作表格里的多条数据,就是批量操作 1 批量增加 2 批量修改 3 批量删除 实体类 package com.msb.pojo; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsCons
阅读全文
摘要: AspectJ本身并不是spring框架中的组成部分, 是一个独立的AOP框架,一般把AspectJ和Spring框架的AOP依赖一起使用,所以要导入一个独立的依赖 实现的两种方式 1 基于注解方式实现 (熟练) 2 基于XML配置方式 (了解) 准备工作1 导入依赖 <dependencies
阅读全文
摘要: 1、创建两个类,增强类和被增强类,创建方法 见之前的代码 2、在spring配置文件中创建两个类对象 <!--创建对象--> <bean id="userDao" class="com.com.msb.UserDaoImpl"></bean> <bean id="daoAspect" class
阅读全文
摘要:AOP切面编程一般可以帮助我们在不修改现有代码的情况下,对程序的功能进行拓展,往往用于实现 日志处理,权限控制,性能检测,事务控制等AOP实现的原理就是动态代理,在有接口的情况下,使用JDK动态代理,在没有接口的情况下使用cglib动态代理 为Dao层所有的add方法添加一个性能记录功能 AOP中的
阅读全文
摘要: bean从创建到销毁经历的各个阶段以及每个阶段所调用的方法 1 通过构造器创建bean实例 执行构造器 2 为bean属性赋值 执行set方法 3 初始化bean 调用bean的初始化方法,需要配置指定调用的方法 4 bean的获取 容器对象 getBean方法 5 容器关闭销毁bean 调用销
阅读全文
摘要: spring容器可以读取.properties属性配置文件,可以将文件中的信息注入给bean 例如,引入Druid数据源,配置连接池信息 1 导入Druid依赖和mysql-connector依赖 <dependency> <groupId>com.alibaba</groupId> <arti
阅读全文
摘要: 事务的管理应该放在我们的service层进行处理 spring中有两种事务的管理方式 1 编程式事务管理(了解) 2 声明式事务管理(掌握) 基于注解方式实现(掌握) XML方式实现(了解) Spring声明式事务的实现方式,底层就是AOP,AOP的底层就是动态代理 Spring事务管理相关的A
阅读全文
摘要: 代理模式 是通过代理对象访问目标对象,这样可以在目标对象基础上增强额外的功能,如添加权限,访问控制和审计等功能。 房产中介代替业主卖房 静态代理 静态代理中代理类与被代理类都需要实现同一个接口,这就说明我们的一个静态代理类只能代理一个类,并且还要事先知道我们要代理哪个类才能写代理类,如果我们有其
阅读全文
摘要: bean自动装配 通过property标签可以手动指定给属性进行注入 我们也可以通过自动转配,完成属性的自动注入,就是自动装配,可以简化DI的配置 准备实体类 package com.msb.bean; /** * @Author: Ma HaiYang * @Description: Mirc
阅读全文
摘要: proxy 动态代理 面向接口 1必须有接口和实现类 2增强接口中定义的方法 3只能读取接口中方法的上注解 cglib动态代理模式 面向父类 package com.msb.testCglib; import org.junit.Test; import org.springframework.
阅读全文
摘要:AOP切面编程一般可以帮助我们在不修改现有代码的情况下,对程序的功能进行拓展,往往用于实现 日志处理,权限控制,性能检测,事务控制等AOP实现的原理就是动态代理,在有接口的情况下,使用JDK动态代理,在没有接口的情况下使用cglib动态代理 为Dao层所有的add方法添加一个性能记录功能 AOP中的
阅读全文
摘要:课程简介和目标 是一个开源框架,它由Rod Johnson创建 ,.它是一个容器框架,用来装javabean,这种中间层框架可以起一个连接作用,比如说把Struts和hibernate结合在一起运用,就是早期的SSH,如果把SpringMVC和MyBatis结合到一起,就是目前非常流行的SSM。简单
阅读全文
摘要: IOC底层原理 1 XML解析技术读取配置文件 <bean id="empDao" class="com.msb.dao.impl.EmpDaoImpl"></bean> 将上面的信息读取进入程序 对象的ID ,一个是对象的类的全路径名 2 反射技术实例化对象,放到容器中 获得类的字节码 Cla
阅读全文
摘要:JDK安装使用步骤 1.切换到JDK目录[root@8xp3kwxbmp90uvt4 JDK]# cd /root/02InstallStorage/JDK/newest 2.解压压缩文件到指定文件夹[root@8xp3kwxbmp90uvt4 newest]# tar -xvf jdk-8u261
阅读全文
摘要:Linux中的命令严格区分大小写 pwd print working directory :输出当前工作目录,光标所有位置的目录(绝对路径)cd change directory :’切换目录 ‘.’表示当前目当 ‘..’上一级目录(父目录)ls List : 列表目录中的内容。默认显示当前目录下的
阅读全文
摘要:/ 根目录(Unix和Linux中没有盘符的概念)一个硬盘一个根/bin 系统的常用命令目录。包括控制台命令、系统可执行文件、系统的核心二进制文件等/etc 发布目录。保存系统中所有的核心内容,要求控制权限高,建议不要随便读写/usr 用户目录。相当于Windows系统中的program files
阅读全文
摘要:我们研发项目,写代码时,使用的一般都是windows或者是MAC的操作系统,作为本地的用户使用系统,而Linux一般都是放在服务器上运行的一种高效稳定的服务器系统. 我们还是无法完全避免对于Linux的接触和使用,尤其是在一些中小型企业,一个程序员往往是多面手,称之为"全干工程师",那么这个时候我们
阅读全文
摘要: 建立数据库连接的两种方式: 传统连接方式: 首先调用Class.forName()方法加载数据库驱动,然后调用DriverManager.getConnection()方法建立连接. 连接池方式: 连接池解决方案是在应用程序启动时就预先建立多个数据库连接对象,然后将连接对象保存到连接池中。当客户
阅读全文
摘要: 使用预编译语句对象防止注入攻击 package com.msb.test2; import com.msb.entity.Account; import java.sql.*; import java.util.Scanner; /** * @Author: Ma HaiYang * @Desc
阅读全文
摘要: PreparedStatement批处理 什么是批处理? 当我们有多条sql语句需要发送到数据库执行的时候,有两种发送方式,一种是执行一条发送一条sql语句给数据库,另一个种是发送一个sql集合给数据库,也就是发送一个批sql到数据库。普通的执行过程是:每处理一条数据,就访问一次数据库;而批处理
阅读全文
摘要: DAO(Data Access Object)是一个数据访问接口,数据访问:顾名思义就是与数据库打交道。夹在业务逻辑与数据库资源中间。 在核心J2EE模式中是这样介绍DAO模式的:为了建立一个健壮的J2EE应用,应该将所有对数据源的访问操作抽象封装在一个公共API中。用程序设计的语言来说,就是建
阅读全文
摘要: log4j日志处理 1) 什么是日志log 异常信息 登录成功失败的信息 其他重要操作的信息 日志可以记录程序的运行状态,运行信息,用户的一些常用操作.日志可以帮助我们分析程序的运行状态,帮我们分析用户的操作习惯,进而对程序进行改进 2) 如何记录日志 方式1:System.out.printl
阅读全文
摘要:什么是范式 必须保证数据库设计的合理性,对数据库设计总结的一些经验性的规范,称之为范式 1.数据库设计关系整个系统的架构,关系到后续开发效率和运行效率 2.数据库的设计主要包含了设计表结构和表之间的联系 如何是合理数据库 1.结构合理 2.冗余较小 3.尽量避免插入删除修改异常 如何才能保证数据库设
阅读全文
摘要:一对一 A表中的一条数据对应B表中的一条数据 一对多 A表中的一条数据对应B表中的多条数据 多对多 A表中对应B表中多条数据,同样B表中对应A表中多条数据 多对多需要通过中间表体现关系 中间表讲多对多的关系转变成两个一对多
阅读全文