- 博客(48)
- 资源 (2)
- 收藏
- 关注
转载 springmvc aop 不生效的解决办法
今天在做 SpringMVC 整合 Spring 、MyBatis 的过程中,遇到了 AOP 不生效的问题,于是想起了前不久和同事也遇到了同样的问题,当时是因为事务不生效(因为 Spring 的 事务也是基于 AOP 的),所以,这里一定要再次记录一下。当时,我们解决这个问题,是通过张开涛的博文。context:component-scan扫描使用上的容易忽略的use-default-fil...
2018-09-29 17:21:11 1066
原创 内存分配,内存泄漏解决
内存分配设置 整个堆大小=年轻代大小 + 年老代大小 + 持久代大小 堆 -Xmx3550m(设置堆最大的可用内存) 设置JVM最大可用内存为3550M。 -Xms3550m(设置堆最小的可用内存) 设置JVM促使内存为3550m。此值可以设置与-...
2018-09-24 17:20:29 292
原创 jvm虚拟机工具
jps jps 无参数:显示进程的ID 和 类的名称 jps 原理 java程序在启动以后,会在java.io.tmpdir指定的目录下,就是临时文件夹里,生成一个类似于hsperfdata_User的文件夹,这个文件夹里(在Linu...
2018-09-20 20:32:01 244
转载 【mybatis01】宏观上把握MyBatis框架
connection 是线程不安全的,为什么要用线程池,从线程池中取出来的connection 每次不一定都是一个,分为(非事务(不是同一个)和事务两种情况(是同一个))从图中可以看出,mybatis中首先要在配置文件中配置一些东西,然后根据这些配置去创建一个会话工厂,再根据会话工厂创建会话,会话发出操作数据库的sql语句,然后通过执行器操作数据,再使用mappedStatement对数...
2018-09-17 15:50:17 199
原创 0 jdbc 和mybatis 的对比,jdbc 的劣势
1.4问题总结public class JdbcTest { public static void main(String[] args) { //数据库连接 Connection connection = null; //预编译的Statement,使用预编译的Statement提高数据库性能 PreparedStatement preparedStatement...
2018-09-17 14:57:16 452
原创 mybatis的学习线路图
mybatis中的重点就是:1 如何保证sqlSession 中的线程安全2 mapper 代理的底层实现3 mybatis 的高级查询(一对一,一对多,多对多)4 延迟加载5 一二级缓存与缓存配置6 mybatis 分页0 jdbc 和mybatis 的对比,jdbc 的劣势1 宏观上把握MyBatis框架2 原始的到dao开发和弊端(sqlSession的线...
2018-09-17 14:51:37 1026
原创 jvm 学习线路图(更新中)
java 虚拟机的完整结构 当我们在eclipse 中编写完代码的的时候,就会在bin 文件夹下面生成该类的class 字节码文件 1 new 实例 2 调用某个类的类静态方法 3 访问某个类变量或为某个类类变量或为变量赋值 4 使用反射的方式创建对象 5 初始化某个类的子类,子类的父类都会初始化 6 直接使用java.exe 命令运行某...
2018-09-14 22:45:49 743
转载 字节码(.class)文件的加载过程
Class文件装载经历的各个阶段: 在java应用程序开发中,只有被java虚拟机装载的Class类型才能在程序中使用。只要生成的字节码符合java虚拟机的指令集和文件格式,就可以在JVM上运行,这为java的跨平台性提供条件。 字节码文件的装载过程:加载 、 连接(包括三个步骤:验证 准备 解析) 、初始化,如图所示--------------------------...
2018-09-14 21:54:48 4203
转载 eclipse 的java 编译器和javac的区别
Eclipse已经实现了自己的编译器,命名为 Eclipse编译器for Java (ECJ)。它不同于javac,Sun JDK附带的编译器。一个显着的区别是,Eclipse编译器允许您运行实际上没有正确编译的代码。如果错误的代码块从未运行,您的程序将运行良好。另一个不同之处在于Eclipse编译器允许在Eclipse中进行增量构建IDE,也就是所有的代码一旦你完成输入就编译。Eclips...
2018-09-14 15:15:36 3898
原创 从零创建第一个高可用项目
创建第一个高可用项目 pom.xml文件源码<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/...
2018-09-13 15:19:21 202
原创 1 如何解决高并发
如何解决高并发:1 解决方式一:在前端加上ngnix 负载均衡服务器1000个请求,2个tomcat 服务器当我们的服务器有1000个服务器请求的时候,因为tomcat 服务器一般只能是最多能够承担理论上只能是500,实际上也就是300-400个并发请求,所以1000个并发请求要平均分配给2个服务器,两个服务器之间session要共享,用到服务器配置cluster,来共享session...
2018-09-13 15:10:41 14893 4
原创 .class 文件的结构
采用二进制来写文件的两大优点就是降低了存储空间,提升了读写的性能。我们采用来打开二进制文件,为什么要采用二进制来存储,通常情况下,存储数据的格式有xml,json,txt 但是他们这种可读性很好但是占用的空间很大,占用的空间很大所以可读性很差, 所以经常采用二进制(0101001只有0和1 的方式)的读取方式,通常本来是几个G的文件的,改写成二进制的话,就变成了几百兆了,或者是几十...
2018-09-11 15:06:24 479
转载 创建项目,通过mavenrepository.com 找jar 包的映射关系 , 并且添加映射关系
项目构建新建maven项目2、调过骨架,如果不跳过骨架选择创建出的项目目录是不全的 填写坐标3、创建工程4、处理红色叉号手动在webapp文件夹下创建一个WEB-INF文件夹,在里面放一个web.xml文件5、处理编译版本在pom.xml中添加如下代码<build><!-- 配置了很多插件 --><pl...
2018-09-11 12:11:09 839
原创 M2e插件的安装
M2e插件的安装Maven在eclipse的配置1、选择3.3.9版本的maven软件,相当于在eclipse 中配置maven 服务器2、修改默认的本地仓库地址
2018-09-11 12:06:18 584
转载 maven 的生命周期
命令 mvn package 打成war 包的命令mvm install 把项目放到本地仓库 但是上面的命令是没有什么用的,主要是打成jar 包maven 的生命周期Compile test package install deploy(发布到私服)实际上执行test 的时候把compile 执行了,在执行package 的时候实际上c...
2018-09-11 12:04:07 512
转载 Java集合框架介绍
Java集合是Java提供的工具包,位于java.util包下,包含了常用的数据结构:数组、链表、栈、队列、集合、哈希表等。学习Java集合框架主要可以划分为如下五个部分:List列表、Set集合、Map映射、迭代器(Iterator、Enumeration)、工具类(Arrays、Collections)。 Java集合类的整体框架图如下:从图中可以看出,...
2018-09-09 18:21:08 197
转载 http https tcp udp
TCP HTTP UDP三者的关系如下:TCP/IP是个协议组,可分为四个层次:网络接口层、网络层、传输层和应用层。在网络层有IP协议、ICMP协议、ARP协议、RARP协议和BOOTP协议。在传输层中有TCP协议与UDP协议。在应用层有HTTP,FTP、TELNET、SMTP、DNS等协议。HTTP全称是HyperText Transfer Protocal,即:超文本传输协...
2018-09-07 23:56:18 402
原创 什么情况下会初始化类
都什么情况下会初始化类public class A { { System.out.println("block"); } static{ System.out.println("static"); } public void run(){ System.out.println("A run"); } public void service(){ System...
2018-09-07 23:31:41 187
原创 session入门
Session 原理 HttpSessionsession和cookie 其实是一个东西,保存在服务端就是session 保存在客户端就是cookie1. HttpSession概述 * HttpSession是由JavaWeb提供的,用来会话跟踪的类。session是服务器端对象,保存在服务器端!!! * HttpSession是Servlet三大域对象之一(req...
2018-09-07 22:14:46 365
原创 cookie 入门
Cookie 是保存到客户端的东西 1 当浏览器中没有cookie的时候谷歌浏览器—右侧工具栏设置—内容设置 cookie显示的是空的浏览器随便请求一个jsp 页面,因为由于访问jsp 页面服务端这个时候,因为jsp 中含有session ,,cookie携带者sessionId 保存到客户端去(显示在客户端的响应头)查看...
2018-09-07 22:13:46 167
原创 jsp 入门
jsp原理(理解) * jsp其实是一种特殊的Servlet > 当jsp页面第一次被访问时,服务器会把jsp编译成java文件(这个java其实是一个servlet类) > 然后再把java编译成.class > 然后创建该类对象 > 最后调用它的service()方法 > 第二次请求同一jsp时,直接调用se...
2018-09-07 22:11:07 125
原创 【Servlet 入门】
Servlet 是javaweb 三大组件之一三大组件:1 Servlet2 filter3listener1.servlet-api 和 javax.servlet-api的区别在正式查看Servlet源码前,我们首先要分清楚上述两个jar包的区别。引用:这两个构件都是 Servlet-Specificatoin Jar (Servlet 规范包),只不过因为版本升...
2018-09-07 22:08:28 249
原创 【HTTP协议】
HTTP协议什么是协议:协议就是甲乙双方定的约定,甲乙双方就是客户端(浏览器)和服务器! 理解成双方通信的格式!协议一共有两种:l 请求协议;在点击连接的时候,客户端给服务器发送了少次请求(HTTP 请求),不单单是加载html的时候发送了一次http请求,加载一次图片也要发送一次请求,所以在一个网页中加载了多少个图片就要加载多少次请求,如果一个网页中含有三张图片所以一共是...
2018-09-07 22:05:23 134
原创 【springmvc的请求流程】:handler 的作用与配置,注解配置handler的requestMapping的配置
handler三种配置方式一 实现HttpRequestHandler 接口,并且返回对象也是要放在域对象request 当中方式二: 实现Controller接口,其实modelAndView .addObject 相当于是request.setAttribute的方法,最终对象也是放在域对象request 中的 ...
2018-09-07 15:35:37 694
转载 Struts2中URL处理
在好奇心的驱使下,查看了Struts对于URL的处理源码,在Struts中,主要是需要通过URL找到对应的ActionMapping设置,也就是在Struts.xml中配置的action,其寻找过程如下:1. 在web.xml中,配置了.do结尾的请求,都会被struts的org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecut...
2018-09-07 12:49:33 914
原创 【springmvc 的请求流程二】:(springmvc 的三大组件之一)处理器映射器的配置和通过处理器映射器返回请求链的源码流程
总结策略模式,每一种映射器方案都提供了对url 的解析的方案都是不同的DispatcherServlet 拿着执行链去寻找对应的处理器适配器(HandlerAdapter)为什么要引入适配器?因为处理器(Handler)有很多种,DispatcherServlet没办法统一管理,所以出现了适配器。让适配器统一处理Handler,而DispatcherServlet统一处理适配器。根据请...
2018-09-06 16:47:47 1028
转载 【aop 的另外一种叫法拦截器,实现拦截器(一)】:jdk实现拦截器与spring 实现拦截器
struts2 的拦截器机制https://www.cnblogs.com/hayasi/p/5882397.html原理AOP(Aspect Oriented Programming),也就是面向方面编程的技术。AOP基于IoC基础,是对OOP的有益补充。 AOP将应用系统分为两部分,核心业务逻辑(Core business concerns)及横向的通用逻辑,也就是所谓的方面...
2018-09-06 12:43:34 445
转载 【AOP 的实现之动态代理(一)】:jdk和cglib
动态代理 Java在JDK1.3后引入的动态代理机制,使我们可以在运行期动态的创建代理类。使用动态代理实现AOP需要有四个角色:被代理的类,被代理类的接口,织入器,和InvocationHandler,而织入器使用接口反射机制生成一个代理类,然后在这个代理类中织入代码。被代理的类是AOP里所说的目标,InvocationHandler是切面,它包含了Advice和Pointcut。 3.1....
2018-09-06 12:28:11 110
转载 【AOP 的各种实现】:总结
1 AOP各种的实现AOP就是面向切面编程,我们可以从几个层面来实现AOP。在编译器修改源代码,在运行期字节码加载前修改字节码或字节码加载后动态创建代理类的字节码,以下是各种实现机制的比较。 类别 机制 原理 优点 缺点 静态AOP 静态织...
2018-09-06 12:25:27 216
转载 【AOP 的实现之Aspectj(一)】:AspectJ开发环境搭建与Hello World
Spring 之AOP AspectJ切入点语法详解(最全了,不需要再去其他地找了)https://blog.csdn.net/caomiao2006/article/details/47069171 AOP大家都不陌生,它是一种编程理念,一种规范,有很多的实现者如Spring AOP,JBoss AOP,还有我们今天要讲的AspectJ。我们平时项目用到最多的是Spring AOP,它是...
2018-09-06 12:12:29 238
转载 action 的实例化方式
框架版本方式一:单独使用struts2通过 return clazz.newInstance(); //实例化 方式二:1)配置方式一:由spring 代码中的代码片段: bean = autoWiringFactory.autowire(clazz, AutowireCapableBeanFactory.AUTOWIRE_CONSTRUCTOR, false);产生的action实例。 即...
2018-09-05 16:27:22 764
转载 struts2源代码分析
本章讲述Struts2的工作原理。 读者如果曾经学习过Struts1.x或者有过Struts1.x的开发经验,那么千万不要想当然地以为这一章可以跳过。实际上Struts1.x与Struts2并无我们想象的血缘关系。虽然Struts2的开发小组极力保留Struts1.x的习惯,但因为Struts2的核心设计完全改变,从思想到设计到工作流程,都有了很大的不同。 Struts2是Struts...
2018-09-05 14:01:22 528
转载 调试jar文件
调试jar文件这里以调试项目中搭好的springmvc框架中的DispatcherServlet为例,一次讲解如何debug进入这个类的方法。下载对应框架版本的src源码,我这里是spring3.2.4。 把源码引入jar文件中。 a、找到DispatcherServlet的class文件所属的jar文件,这里是spring-webmvc-3.2.4.RELEASE.jsr。...
2018-09-05 13:52:33 1305
转载 什么是集群?什么是分布式?什么又是SOA?
(传统系统架构)传统的系统架构就是经典的三层结构,就一个项目跑在一个tomcat中,但是随着用户数量的增加,一个服务器一个tomcat肯定是不靠谱的,如果乡村教师马云在杭州一个小地方,搞了一台服务器,一个tomcat,跑天猫的代码,然后让我们去访问,那我们估计是不可能看到网站首页的,一直处于宕机状态。哈哈!这时候可以使用集群的架构,就是说现在马云狠着买了5台服务器,每台服务器都跑天猫的...
2018-09-05 11:36:00 254
转载 把后端的值带到前端的几种方式
方式一:只是单纯的想把后端的字符串打印到页面上protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub response.getWrite...
2018-09-04 13:43:24 11229
原创 maven 操作的目录结构
maven 介绍以及环境搭建介绍maven 结构,配置仓库,在cmd 中启动maven创建第一个maven项目并且通过mavenrepository.com 找jar 包的映射关系maven 的生命周期m2e 插件的安装 ...
2018-09-03 22:39:01 110
转载 Maven介绍及环境变量的配置
什么是Maven?Maven是apache下的一个开源项目,是纯java开发,并且只是用来管理java项目的。Maven好处首先看下普通的传统项目 普通的传统项目.png 然后看下Maven项目 Maven项目.png分析:maven项目为什么这么小?因为没有jar包。 需要jar吗?肯定需要。没有存在于maven项目里面,jar存在于哪?依赖...
2018-09-03 19:06:30 2856 1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人