JAVA
文章平均质量分 81
一支支穿云箭
积石待水,穿流而过。偃旗息鼓,蓄势待发。
展开
-
【转】三种方式解决SpringBoot拦截器不能注入bean的问题
转自:https://www.jianshu.com/p/60ff6d0dae7f一.原因这两天在写代码的时候遇到一个问题,为什么使用SpringBoot的时候,拦截器中使用@Autowired注入bean会报空指针.如下面代码所示,我们知道,Spring管理的bean发现有这个注解时候,它会直接注入相应的另一个Spring管理的bean.当 Spring 容器启动时,AutowiredA...转载 2020-03-03 16:39:17 · 1970 阅读 · 0 评论 -
Web环境中Spring MVC(一)
之前学习Spring MVC时对它很是不了解,只停留在能用的层次上,但是对于它的工作机制和配置模棱另可,在淘淘中经历了整合SSM的过程,其中突然对Spring以及Spring MC突然有了些感触,于是通过对 《Spring技术内幕》、博客http://www.cnblogs.com/Hxinguan/p/6407882.html 的学习,加深了印象。更多内容如下: 在web环原创 2017-04-23 19:20:44 · 555 阅读 · 16 评论 -
ITOO---“秒杀”选课之Redis序列化
1.我的选课在进行选课活动中了为了尽量减少客户端和数据库的连接次数,在实现的思路是这样设计的:客户端的请求优先访问Redis缓存空间,如果Redis中没有则从数据库中加载,并添加到Redis中。这样多个客户端会优先从Redis中加载所需的资源,减少了数据库的压力。ps:选课中的课程比较多,数据库量较大。在Redis的存储遇到了个问题,因为Redis的存储方式是(Key,Value)形式的,在设计原创 2017-08-06 21:16:25 · 1134 阅读 · 13 评论 -
并发编程(一):多线程基础知识
两种创建线程方法继承类: 1. 继承Thread 类;实现接口: 2. 实现Rnnable接口; 3. 实现Callable接口(rnnable的增强版,可以有返回值和抛异常)对比:Rnnable、Callable接口: 编程复杂,但是多个线程可以共享同一个target对象;适合多个相同线程来处理同一份资源的情况,可以将cpu、代码、数据分开。Thrad类: 编程简单,但是不能再继承原创 2017-08-15 08:09:36 · 490 阅读 · 4 评论 -
ITOO---选课里的Spring-RabbitMq
前言项目里需要用到RabbitMQ来做数据持久化的工作,需要将RabbitMQ集成到Spring中。生产端需要将同步消息发送到MQ,消费者接受后持久化到数据库;生产端/** * 退课 * @param coursetype * @param redisId * @param courseId * @param teachClassId *原创 2017-08-15 09:19:54 · 536 阅读 · 8 评论 -
并发编程(三):同步容器和并发容器
前言Java 中有些集合和非线程安全,而有些集合是线程安全,后者又被称为是Java中的同步容器,因为它能满足操作的原子性,保持数据同步。有些容器时Java自带的,而有些是通过Collections提供的方法包装的。同步容器在Java中,同步容器主要包括2类: 1)Vector、Stack、HashTableVector实现了List接口,Vector实际上就是一个数组,和ArrayList类似,但原创 2017-08-15 08:20:30 · 838 阅读 · 5 评论 -
并发编程(二):非线程安全集合类
前言Java集合时所讲的ArrayList 、LinkedList、HashSet、TreeSet、HashMap、TreeMap等都线程不安全的,当多个并发线程向这些集合中存取元素时,就可能会破坏这些集合的完整性。那么究竟是在什么情况下才会出现问题呢?线程安全就是说多线程访问同一代码(对象、变量等),不会产生不确定的结果;线程不安全的集合类ArrayList:package 线程不安全;imp原创 2017-08-14 21:48:04 · 843 阅读 · 5 评论 -
深入研究Spring-IoC:源码分析依赖注入
1.前言对于容器创建的过程已经阐述过一遍了,下面是依赖注入的问题。Spring提供的依赖注入的方法主要由两种:一种是通过getBean的方法;另一种是通过注解@Autowaire。需要指出的是依赖注入的过程是用户第一次向ioc容器索要Bean的时候开始生产的,也可以通过设置BeanDefinition的lazy-init属性来体现实例化。2.分析执行代码: HelloWorldService hel原创 2017-08-24 11:04:27 · 1137 阅读 · 6 评论 -
深入研究Spring-IoC:源码分析容器创建
1.前言从之前的分析中可以知道IOC容器的创建大致分为3步:Resource定位、BeanDefinition载入解析、向容器注册BeanDefinition。Tiny-spring手动实现了Spring框架,通过对这个源码的解读可以更好更有效的理解Spring。2.容器创建的硬编码ApplicationContext applicationContext = new ClassPathXmlApp原创 2017-08-24 10:32:27 · 439 阅读 · 5 评论 -
深入研究Spring-IoC :容器创建的几种方式
1.前言 本文为对tiny-spring的学习解读,代码参考自tiny-spring。一个手写的Spring简易版框架。 前面已经提到了Spring IOC容器的创建大致分为3个步骤。但是这个三个步骤是有一个演进的过程的,Spring容器创建方式前后有6种,从最基本的实例化创建创建到后来的自动化,这些过程的学习对我们学习理解IOC有很大的帮助。2.容器创建需要的代码HelloWorldServic原创 2017-08-24 09:22:15 · 980 阅读 · 5 评论 -
深入研究Spring-IoC:两种设计和实现
一.Sprng IOC解除了对象实例化造成的耦合现象;将对象的创建和对生命周期的管理交给了容器来管理,可以通过注入的方式将IOC容器中的对象供给开发者使用,极大方便了开发。二.IOC容器系列的两种设计和实现–BeanFactory和ApplicationContextSpring IOC容器的设计中,IOC容器是一个统一称呼,具体担当容器的角色的Bean可以主要分为两种:BeanFactor原创 2017-08-23 20:16:16 · 766 阅读 · 5 评论 -
并发编程(四):并发工具类
前言并发工具类大致分为四种:阻塞队列、信号量(Semaphore)、栅栏(Barrier)以及闭锁(Latch)。用于Java在并发编程中各种情况下使用;闭锁– CountDownLatch闭锁作用相当于一扇门:在闭锁到达某一状态之前,这扇门一直是关闭的,所有的线程都会在这扇门前等待(阻塞)。只有门打开后,所有的线程才会同时继续运行。CountDownLatch 是一种灵活的闭锁实现,闭锁状态包含一原创 2017-08-15 08:28:38 · 1719 阅读 · 5 评论 -
并发编程(五):Executor框架
简介Executor是JDK提供的一套线程框架,用于有效的控制线程。Executor框架主要包含三个部分:任务:包括Runnable和Callable,其中Runnable表示一个可以异步执行的任务,而Callable表示一个会产生结果的任务任务的执行:包括Executor框架的核心接口Executor以及其子接口ExecutorService。在Executor框架中有两个关键类ThreadPoo原创 2017-08-15 09:04:12 · 338 阅读 · 6 评论 -
ESC+aliyun-redis+Docker
做一个简单的问题记录.............. 一、问题背景 使用docker在ECS主机上部署项目,项目中使用到了aliyun的redis,配置ip是阿里云给的字符串连接地址。 现象:将需要部署的war包直接在ecs主机上部署tomcat,可以访问aliyun-redis; 将需要部署的war包打到docker...原创 2018-07-20 15:36:27 · 628 阅读 · 0 评论 -
ID临时方案
下面从特性、规则、生成、模块传递等几个方面对这四个ID进行定义和解释说明。 ID类型 特性 规则 产生 作用 场景 使用 RequestId 唯一性 排序行 归并性 纳...原创 2018-10-26 09:42:34 · 587 阅读 · 0 评论 -
Spring 三级父子容器
首先,对于一个web应用,其部署在web容器中,web容器提供其一个全局的上下文环境,这个上下文就是ServletContext,其为后面的spring IoC容器提供宿主环境; 其次,在web.xml中会提供有contextLoaderListener。在web容器启动时,会触发容器初始化事件,此时contextLoaderListener会监听到这个事件,其contextIn原创 2017-04-23 19:21:55 · 566 阅读 · 16 评论 -
Tar Jar War Ear
从最终客户的角度来看,JAR文件就是一种封装,他们不需要知道jar文件中有多少个.class文件,每个文件中的功能与作用,同样可以得到他们希望的结果。除jar以外对于J2EE来说还有war和ear。区别见下表: JARWAREAR英文Java Archive fileWeb Archive file原创 2017-04-09 20:22:19 · 530 阅读 · 14 评论 -
【Java】----数据类型和基本数据类型转换
基本数据类型和数据类型转换原创 2016-02-21 15:20:32 · 979 阅读 · 22 评论 -
【Java】----宏观感性认识
这篇博客算是自己开始Java 学习之旅的一个开始。很早之前就听人说过Java的各种牛掰,脑子里也流闪过对Java的向往。如今总算是有机会和它近距离交流了。最开始的学习总是苦恼的,犹如盲人摸象,见山不是山,但是我知道怀着一颗敬畏的心去学习是肯定不行的。于是稍微花点时间对马上要学习的J2SE进行了简单的梳理。内容大多是查阅资料所得,点到为止,追求宏观的感性认识。原创 2016-02-15 16:45:57 · 1139 阅读 · 17 评论 -
【Java】----容器Set/List/Map 的区别
概念: Java容器是Java API提供的在程序中存放对象的类的实例,不同于数组的固定性,Java容器的空间具有自增性和自销性。完美解决了数组的不足。 区分: Java中各式各样的容器有很多,每一种容器都代表着一种情况和特殊的问题。如何从中选取它们是一个难点。面对如此多的容器,程序员们把它们分成了大致三种代表类型:List/Set/Map。原创 2016-02-22 16:49:40 · 2519 阅读 · 27 评论 -
【Java】----线程同步:生产-消费问题
并发编程 线程同步原创 2016-02-27 15:36:24 · 1120 阅读 · 23 评论 -
【java】----日期函数大全
java日期函数处理 SimpleDateFormat Calendar原创 2016-02-27 21:36:21 · 4175 阅读 · 25 评论 -
【J2EE】十三个规范:总结
【 介绍】 J2EE是一套全然不同于传统应用开发的技术架构,包含许多组件,主要可简化且规范应用系统的开发与部署,进而提高可移植性、安全与再用价值。 J2EE核心是一组技术规范与指南,其中所包含的各类组件、服务架构及技术层次,均有共同的标准及规格,让各种依循J2EE架构的不同平台之间,存在良好的兼容性,解决过去企业后端使用的信息产品彼此之间无法兼原创 2016-03-14 11:01:26 · 1569 阅读 · 35 评论 -
【SSH】Hibernate:配置文件解析
Hibernate 基础配置选项主要围绕着SessionFacotry 展开的。我们可以通过配置文件或编码方式这两种方式来实现hibernate 的基础配置。配置文件方式:使用configuration类: 在实例化时自动加载CLASSPATHE中hibernate.cfg.xml的配置信息(DBURL/DBUSER/DBPASSWORD)。 在实例化时手动原创 2016-05-16 14:44:57 · 1713 阅读 · 38 评论 -
【SSH】Hibernate:核心类和接口
Hibernate的核心类和接口一共有6个,分别为:Configuration、SessionFactory、Session、Query、Criteria和Transaction。这6个核心类和接口在任何开发中都会用到。通过这些接口,不仅可以对持久化对象进行存取,还能够进行事务控制。其中Query和Criteria是 hiernate 3中对Session 中find方法的取缔。原创 2016-05-16 11:36:42 · 1747 阅读 · 31 评论 -
【SSH】Hibernate:O/R实体映射与一对一关联
实体映射O/R映射是ORM框架中最为关键的组成部分了。其中的实体映射介绍hibernate中类和表之间的映射属性字段的基本技术 问题:数据库中有一个表【T_User】,其中字段有【ID】、【name】,那么如何在hibernate中建立一个对应的映射呢?Hibernate 选用xml 作为类表映射配置媒介(默认为.hbm.xml后缀),通过xml可以将表T_User 映射到hibe原创 2016-05-16 18:04:58 · 1912 阅读 · 32 评论 -
【SSH】Hibernate:常用的HQL语句
Hibernate query language 简称HQL,是实际开发中最长的hibernate查询封装模式。 HQL提供了更加接近传统SQL语句的查询方法:[select/update/delete…] [from…][where…][groupby…] [having …][order by…] 实体查询: String hql =”f原创 2016-05-16 21:11:23 · 9024 阅读 · 36 评论 -
【SSH】Spring:从Demo看IOC基本原理
对于IOC的学习一直都不体系化,导致自己迷惑,只知道“依赖注入“这四个挂在嘴边的字符串。通过学习并结合自己目前的理解来看,IOC就像是一种解耦合的技术。通过配置文件将两个对象之间的依赖降低。之所以说IOC容器是因为IOC技术的体现主要是在xml中,而xml则是一种数据存储的结构,所以提到IOC时总是和容器相联系。 下面通过一个运用IOC原理的Demo演示一下IOC的强大:原创 2016-05-18 19:32:44 · 5542 阅读 · 43 评论 -
SSH框架
SSH 为 struts+spring+hibernate的一个集成框架,是目前较流行的一种Web应用程序开源框架。 集成SSH框架的系统从职责上分为四层:表示层、业务逻辑层、数据持久层和域模块层,以帮助开发人员在短期内搭建结构清晰、可复用性好、维护方便的Web应用程序。其中使用Struts作为系统的整体基础架构,负责MVC的分离,在Struts框架的模型部分,控制业务跳转,利用H原创 2016-05-15 15:02:55 · 1140 阅读 · 26 评论 -
【SSH】struts:原理解析
struts通过采用Java Servlet/JSP技术,实现了基于Java EE Web应用的Model-View-Controller〔MVC〕设计模式的应用框架,是MVC经典设计模式中的一个经典产品。 Struts这个名字来源于在建筑和旧式飞机中使用的支持金属架。这个框架之所以叫"Struts",是为了提醒我们记住那些支撑我们房屋,建筑,桥梁,甚至我们踩高跷时候的基础支撑原创 2016-05-29 21:24:06 · 764 阅读 · 13 评论 -
【SSH】泛泛谈SSM和SSH
最近在学SSH,但突然看到了SSM,感觉两者很相似,于是就开始打破砂锅问到底,网上找了很多资料,但是由于本人对SSM的认识只存在于理论上,所以就泛泛的谈论下自己对这两个java框架的认识,做一个小总结。 记得很久前看到一个标题,名为“MVC已死”,说的MVC这种思想已经有一些不适应了,新的模式MOVE,正在茁壮成长,MOVE指即Models(模型)、Operations(操作原创 2016-06-05 21:04:57 · 16447 阅读 · 32 评论 -
Ioc:从自助和回转火锅看控制反转
Ioc (Inversion of Control),意为控制反转,是Spring框架的核心。但是它不仅仅是一种技术,更多的角色扮演着一种设计思想,也有人把它当做一种设计模式来对待。我查看了很多前辈大牛的博客,再加上自己的ITOO中使用的一点经验,写一下自己对Ioc的理解。 个人觉得Ioc的前世今生一切玄奥都在“控制反转”这四个字上。理解好”控制“和”反转“也就是了解Ioc这一设计原创 2016-03-06 21:56:21 · 1096 阅读 · 14 评论