关闭

[置顶] ITOO---选课里的Spring-RabbitMq

前言项目里需要用到RabbitMQ来做数据持久化的工作,需要将RabbitMQ集成到Spring中。生产端需要将同步消息发送到MQ,消费者接受后持久化到数据库;生产端/** * 退课 * @param coursetype * @param redisId * @param courseId * @param teachClassId *...
阅读(139) 评论(7)

[置顶] ITOO---选课之RabbitMQ搭建

【RabbitMQ】...
阅读(102) 评论(8)

[置顶] ITOO---“秒杀”选课之Redis序列化

1.我的选课在进行选课活动中了为了尽量减少客户端和数据库的连接次数,在实现的思路是这样设计的:客户端的请求优先访问Redis缓存空间,如果Redis中没有则从数据库中加载,并添加到Redis中。这样多个客户端会优先从Redis中加载所需的资源,减少了数据库的压力。 ps:选课中的课程比较多,数据库量较大。 在Redis的存储遇到了个问题,因为Redis的存储方式是(Key,Value)形式的,在设计...
阅读(181) 评论(10)

[置顶] ITOO---选课里的“秒杀”业务实现(一)

1.我的选课 在选课中有个中心环节需要格外的注意,那就对每一门课程数量增减。假如一门《走进英国》的选修课,因资源有限只有100个名额,在redis中以Key/Value形式存储–(CousreID,Capacity);客户端每次选课退课都只是对Capacity进行增减,它的业务实现逻辑是这样的:1.判断redis中是否存在该门课程的缓存;获得数据或者重新加载; 2.判断redis中该门课程的容量是...
阅读(213) 评论(12)

[置顶] ITOO---选课里的“秒杀”业务设计

1.1 我的选课         背景介绍:              在项目的选课功能中碰到一个难题,是高校内的选课业务,有个难题的就是会出现高并发的现象,比如多个学生通过移动端或者pc端进行选课操作,多对一,进行数据库操作时难免出现脏读或幻读的现象;还有就是选课涉及的事务的隔离级别,不同线程对共享资源的访问需要隔离或者锁,需要保证资源的非共享性。每一门课的容量都如抢购一般,需要进行秒杀...
阅读(301) 评论(34)

[置顶] Spring Boot 运行原理之自动配置

我们知道Springboot 提倡的是零配置,但是在我们开发工作中又是不可避免出现第三方软件的结合,需要我们对这些第三方的软件进行一些结合性或必要的属性进行赋值,而这时Spring boot 会帮我们自动进行默认值的配置,避免我们亲自操刀。      SpringBoot关于自动配置的源码在Spring-boot-autoconfigure-1.3,可以在项目中直接查看:...
阅读(921) 评论(20)

[置顶] Spring Boot 注解类

一:Springboot 核心注解:   @SpringBootApplication 是springboot的核心注解,目的是开启自动配置。   @SpringBootApplication注解组合了@Configuration、@EnablAutoConfiguration 、@ComponentStan。这个三个注解和@SpringBootApplication是互为替代关系;...
阅读(290) 评论(19)

[置顶] Spring 4x中的注解类使用

声明bean的注解: 1、@Component组件 2、@Service在逻辑层使用 3、@Respository 在数据层dao使用 4、@Controller 在表现层使用   注入Bean的注解: @Autowired: @Inject @Resource:   配置注解 @Configuration声明当前类位配置类(xml)。 @ComponentSan自...
阅读(196) 评论(19)

[置顶] Spring Boot(三):Eclipse中引入Spring IDE环境--Spring tool suite

一.前言                Spring tool suite 是一个基于eclipseIDE开发环境中的用于开发spring应用程序的工具。提供了开箱即用的环境用于实现,调试和部署你的spring应用,包括为关键的的服务器和云计算,Git,Maven,AspectJ,和最新的Eclipse版本提供整合支持。       1. 查看你的eclipse版本。       2.根据...
阅读(439) 评论(13)

[置顶] Spring Boot(二):安装命令行界面Spring boot CLI

1.前言                 Spring Boot提供了命令行界面(Command Line Interface, CLI),可以用来运行和测试Spring Boot应用。                 安装CLI的方法好几种:                                 ** 用下载的分发包进行安装                **...
阅读(1572) 评论(12)

[置顶] Spring Boot(一) 简介

Spring Boot的大名儿从2016年开始突然就变的燥热起来,纵然有很多技术分享会的参加,但是对Spring Boot还是一知半解,偶然的机会接触到Spring Boot再加上对Spring学习的深入,开始对Spring Boot有了学习的兴趣。揭一揭Spring Boot神秘的面纱。         看了好多博客文章,对Spring boot描述的是天花乱坠而且不一而同,我想用简单...
阅读(289) 评论(12)

[置顶] EJB学习

EJB      EJB是sun的JavaEE服务器端组件模型,设计目标与核心应用是部署分布式应用程序。简单来说就是把已经编写好的程序(即:类)打包放在服务器上执行。凭借java跨平台的优势,用EJB技术部署的分布式系统可以不限于特定的平台。EJB (Enterprise JavaBean)是J2EE(javaEE)的一部分,定义了一个用于开发基于组件的企业多重应用程序的标准。其特点包括网络服务...
阅读(557) 评论(22)

[置顶] Java 内存溢出(java.lang.OutOfMemoryError)的常见情况和处理方式总结

本来想写一写项目中遇到的内存溢出的问题,看了好多博客,发现有一篇特别好的博客,拾人牙慧,共享分享。                    转载:http://outofmemory.cn/c/java-outOfMemoryError java.lang.OutOfMemoryError这个错误我相信大部分开发人员都有遇到过,产生该错误的原因大都出于以下原因:JVM内存过小、程...
阅读(235) 评论(16)

[置顶] JBOSS-eap-6.2目录

一:JBoss目录结构...
阅读(586) 评论(15)

[置顶] 【JVM】垃圾收集算法思想---GC (二)

1.      标记-清除算法(Mark-Sweep)          分为“标记”和“清楚”两个阶段:标记所有需要回收的对象,完成标记后统计收回被标记的对象。          缺点:效率问题---标记和清楚的过程比较浪费时间;          空间问题---标记清除后会产生大量不连续的内存碎片。             2.      复制算法(Copying)...
阅读(428) 评论(62)

[置顶] 【JVM】动态内存回收机制---GC (一)

主要普及下Java内存回收方法的一些常识知识。          【异常原因】                       个人认为异常的原因有两种:                      一:jvm分配的内存本身较小,不能满足应有的内存需求-----------------内存溢出;                      二:部分不能回收的对象产生堆积导致内存变小,或者出现死循环...
阅读(354) 评论(32)

[置顶] 【JVM】内存区域分配机制和内存溢出异常

前言:    对于Java和C类语言来说,它们二者之间存在一个很大的区别:内存动态分配和垃圾回收机制(GC)。对于C 或C++来说,它们的内存管理是有开发人员决定的,也就是收一个对象的生存周期各个部分都具有开发人员的影子。而Java就不同了,它将这些工作全部交由Java虚拟机来管理,内存如何分配和如何回收垃圾都由虚拟机自主管理,极大节省了开发人员的工作。但是这样一来它的弊端就出现了,一是耗费了一...
阅读(665) 评论(37)

[置顶] 【Hadoop】Hbase : 面向列的Nosql 、分布式数据库

Hbase是基于hadoop的开源数据库,它的设计具有高性能、高可靠性、列存储、可伸缩、实时读写的数据库系统,用于存储粗粒度结构化的数据。      Hbase是面向列存储的、非结构型、分布式数据库。     架构图     Region:服务器:      Region是hbase中分布式存储和负载均衡的最小单位,一个表拥有多个region,分配在不同的regio...
阅读(1621) 评论(75)

[置顶] 【Hadoop】数据处理----MapReduce

Mapreduce   Mapreduce 是一种处理海量数据的并行编程模型和计算框架。在hadoop中负责进行数据的处理分析。         工作原理: Mapreduce采用分治的算法,既处理的数据或任务需要满足一下两个条件:1,数据集可以分解成多个小的数据集。2,各个小数据集的结果汇集起来就是大数据集的结果。   在分治的思想下,mapreduce被抽象出两个可自定义的...
阅读(681) 评论(33)

[置顶] 【Hadoop】数据存储----HDFS

1.hdfs设计思路和实现目标---6个  : 1.硬件错误检测和快速恢复;2.注重批量处理而非用户交互处理,注重高吞吐率;3.大规模数据集;4.简单一致性模型                                  ;5移动计算比移动数据更加划算      2。hdfs体系机构:主从结构。      namenode 和  datanode ;      namenode用来进...
阅读(480) 评论(33)

[置顶] 【Hadoop】学习前提

前言       Hadoop是一个由Apache基金会所开发的分布式系统基础架构。它大数据分布式计算的典型代表。本博客参考了大量博客后总结出来的,如有不正,请多指教。       Hadoop这个名词还是在实习的时候听同事讲,本身对大数据三个字比较敏感,所以空闲下来后对hadoop做了些了解,总结一下,多是些概念性的文本总结,仅说说自己的学后感。       什么是...
阅读(407) 评论(24)

[置顶] docker 三组件:镜像、容器、仓库

Docker是开源的一个基于轻量级虚拟化技术的容器引擎项目。它通过分层镜像标准化和内核虚拟化技术,使得应用开发者和运维工程师可以以统一的方式跨平台发布应用,并且以几乎没有额外开销的情况下提供资源隔离的应用运行环境。我们目前知道的云服务是基于操作系统级别的隔离,在同一台物理机器上虚拟多个主机,而docker的实现是直接将操作系统环境和应用进行移植。             学习使用docker需要...
阅读(2156) 评论(39)

总结冲刺

青山不改,绿水长流。...
阅读(93) 评论(4)

谈一下threadLocal的理解

ThreadLocal是Java里一种特殊的变量。每个线程都有一个ThreadLocal就是每个线程都拥有了自己独立的一个变量,竞争条件被彻底消除了。它是为创建代价高昂的对象获取线程安全的好方法,比如你可以用ThreadLocal让SimpleDateFormat变成线程安全的,因为那个类创建代价高昂且每次调用都需要创建不同的实例所以不值得在局部范围使用它,如果为每个线程提供一个自己独有的变量拷贝...
阅读(71) 评论(4)

深入研究Spring-IoC:源码分析依赖注入

1.前言对于容器创建的过程已经阐述过一遍了,下面是依赖注入的问题。Spring提供的依赖注入的方法主要由两种:一种是通过getBean的方法;另一种是通过注解@Autowaire。需要指出的是依赖注入的过程是用户第一次向ioc容器索要Bean的时候开始生产的,也可以通过设置BeanDefinition的lazy-init属性来体现实例化。2.分析执行代码: HelloWorldService hel...
阅读(132) 评论(6)

深入研究Spring-IoC:源码分析容器创建

1.前言从之前的分析中可以知道IOC容器的创建大致分为3步:Resource定位、BeanDefinition载入解析、向容器注册BeanDefinition。Tiny-spring手动实现了Spring框架,通过对这个源码的解读可以更好更有效的理解Spring。2.容器创建的硬编码ApplicationContext applicationContext = new ClassPathXmlApp...
阅读(93) 评论(5)

深入研究Spring-IoC :容器创建的几种方式

1.前言 本文为对tiny-spring的学习解读,代码参考自tiny-spring。一个手写的Spring简易版框架。 前面已经提到了Spring IOC容器的创建大致分为3个步骤。但是这个三个步骤是有一个演进的过程的,Spring容器创建方式前后有6种,从最基本的实例化创建创建到后来的自动化,这些过程的学习对我们学习理解IOC有很大的帮助。 2.容器创建需要的代码HelloWorldServic...
阅读(131) 评论(4)

深入研究Spring-IoC:两种设计和实现

一.Sprng IOC 解除了对象实例化造成的耦合现象;将对象的创建和对生命周期的管理交给了容器来管理,可以通过注入的方式将IOC容器中的对象供给开发者使用,极大方便了开发。 二.IOC容器系列的两种设计和实现–BeanFactory和ApplicationContext Spring IOC容器的设计中,IOC容器是一个统一称呼,具体担当容器的角色的Bean可以主要分为两种:BeanFactor...
阅读(186) 评论(5)

并发编程(五):Executor框架

简介Executor是JDK提供的一套线程框架,用于有效的控制线程。Executor框架主要包含三个部分:任务:包括Runnable和Callable,其中Runnable表示一个可以异步执行的任务,而Callable表示一个会产生结果的任务任务的执行:包括Executor框架的核心接口Executor以及其子接口ExecutorService。在Executor框架中有两个关键类ThreadPoo...
阅读(108) 评论(6)

并发编程(四):并发工具类

前言并发工具类大致分为四种:阻塞队列、信号量(Semaphore)、栅栏(Barrier)以及闭锁(Latch)。用于Java在并发编程中各种情况下使用;闭锁– CountDownLatch闭锁作用相当于一扇门:在闭锁到达某一状态之前,这扇门一直是关闭的,所有的线程都会在这扇门前等待(阻塞)。只有门打开后,所有的线程才会同时继续运行。CountDownLatch 是一种灵活的闭锁实现,闭锁状态包含一...
阅读(215) 评论(5)

并发编程(三):同步容器和并发容器

前言Java 中有些集合和非线程安全,而有些集合是线程安全,后者又被称为是Java中的同步容器,因为它能满足操作的原子性,保持数据同步。有些容器时Java自带的,而有些是通过Collections提供的方法包装的。同步容器在Java中,同步容器主要包括2类: 1)Vector、Stack、HashTableVector实现了List接口,Vector实际上就是一个数组,和ArrayList类似,但...
阅读(160) 评论(5)

并发编程(一):多线程基础知识

两种创建线程方法继承类: 1. 继承Thread 类;实现接口: 2. 实现Rnnable接口; 3. 实现Callable接口(rnnable的增强版,可以有返回值和抛异常)对比:Rnnable、Callable接口: 编程复杂,但是多个线程可以共享同一个target对象;适合多个相同线程来处理同一份资源的情况,可以将cpu、代码、数据分开。Thrad类: 编程简单,但是不能再继承...
阅读(152) 评论(4)

并发编程(二):非线程安全集合类

前言Java集合时所讲的ArrayList 、LinkedList、HashSet、TreeSet、HashMap、TreeMap等都线程不安全的,当多个并发线程向这些集合中存取元素时,就可能会破坏这些集合的完整性。那么究竟是在什么情况下才会出现问题呢? 线程安全就是说多线程访问同一代码(对象、变量等),不会产生不确定的结果; 线程不安全的集合类ArrayList:package 线程不安全;imp...
阅读(148) 评论(5)

JDK自带工具类

下面,我们就按照工具文件名称的英文顺序来逐一介绍JDK内置的工具。 工具名称 描述 appletviewer.exe 用于运行并浏览applet小程序。 apt.exe 注解处理工具(Annotation Processing Tool),主要用于注解处理。 extcheck.exe 扩展检测工具,主要用于检测指定jar文件与当前已安装的...
阅读(307) 评论(2)
189条 共13页1 2 3 4 5 ... 下一页 尾页
    个人资料
    • 访问:181916次
    • 积分:10739
    • 等级:
    • 排名:第1609名
    • 原创:184篇
    • 转载:5篇
    • 译文:0篇
    • 评论:4042条
    博客专栏