框架
文章平均质量分 65
spring、orm、netty
猴子哥哥1024
用技术改变生活,程序猿可以改变世界!!!
展开
-
基于Netty实现UDP双向通信
1、Channel继承关系关于ChannelPipeline原理可参考:https://blog.csdn.net/qq_21033663/article/details/1056742612、NIO Channel分类1)NioDatagramChannel:发送和接收数据包,支持TCP和UDP,对DatagramSocket和selector进行封装2)NioServerSocketChannel:服务端使用,对JDK的ServerSocketChannel进行了封装3)NioSocketC原创 2021-02-09 17:44:27 · 6580 阅读 · 4 评论 -
MyBatis choose标签
有时候我们并不想应用所有的条件,而只是想从多个选项中选择一个。而使用if标签时,只要test中的表达式为 true,就会执行 if 标签中的条件。MyBatis 提供了 choose 元素。if标签是与(and)的关系,而 choose 是或(or)的关系。choose标签是按顺序判断其内部when标签中的test条件出否成立,如果有一个成立,则 choose 结束。当 choose 中所有 ...转载 2018-06-29 16:23:48 · 894 阅读 · 0 评论 -
CDATA和转义字符
MyBatis xml中的sql语句可能会跟xml解析产生冲突,从而不能实现正常功能。两种解决方法1、<![CDATA[]]> xml解析时直接使用[]中的文本,而不进行xml语法的解析2、转义字符1)& &amp; 2)< &lt; 3)> &gt; 4)" &quot; 5)' &...原创 2018-05-23 09:17:15 · 1032 阅读 · 0 评论 -
MyBatis架构解析
一、整体架构1、接口层:SqlSession 2、核心处理层:1)配置解析;2)参数映射;3)SQL解析;4)SQL执行;5)结果集映射;6)插件 3、基础支持层:1)数据源模块;2)事务管理模块;3)缓存模块;4)Binding模块;5)反射模块;6)类型转换;7)日志模块;8)资源加载;9)解析器模块二、各模块内容简介1)SqlSession:采用策略模式,通过该对象执行映射配原创 2018-01-07 16:58:01 · 349 阅读 · 0 评论 -
mybatis绑定错误-- Invalid bound statement (not found)
Invalid bound statement (not found)转载 2017-11-10 08:52:55 · 1988 阅读 · 0 评论 -
Mybatis中javaType和jdbcType对应关系
Mybatis中javaType和jdbcType对应和CRUD例子Xml代码 resultMap type="java.util.Map" id="resultjcm"> result property="FLD_NUMBER" column="FLD_NUMBER" javaType="double" jdbcType="NUMERIC"/>转载 2017-09-27 21:14:29 · 821 阅读 · 0 评论 -
mybatis #和$区别、如何防止SQL注入
mybatis中的#和$的区别1. #将传入的数据都当成一个字符串,会对自动传入的数据加一个双引号。如:order by #user_id#,如果传入的值是111,那么解析成sql时的值为order by "111", 如果传入的值是id,则解析成的sql为order by "id". 2. $将传入的数据直接显示生成在sql中。如:order by $user_id$,如果传入的值转载 2017-09-20 19:49:32 · 2007 阅读 · 0 评论 -
MyBatis配置文件标签
MyBatis配置文件标签:1)configuration:根元素2)properties:定义配置外在化3)settings:一些全局性的配置4)typeAliases:为一些类定义别名5)typeHandlers:定义类型处理,也就是定义java类型与数据库中的数据类型之间的转换关系6)objectFactory:用于指定结果集对象的实例是如何创建的7)plugin原创 2016-08-26 00:04:46 · 5131 阅读 · 0 评论 -
hibernate懒加载(lazy加载)
所谓懒加载(lazy)就是延时加载,延迟加载。当两个及以上表使用hibernate来管理级联关系时,一个表被加载到jvm内存时,其相关表可以暂存在数据库的缓存中,当需要使用相关表数据时在加载到jvm内存中,通过懒加载机制可以减少内存中不必要的开销,以提高程序的性能。 需要注意的是,当使用懒加载时,如果将session关闭,则断开了与数据库的连接,此时如果要访问子表数据,由于子表数据是存放原创 2016-04-24 22:26:05 · 5296 阅读 · 0 评论 -
ibatis与mybatis区别,hibernate、mybatis、JDBC区别
ibatis与mybatis区别?ibatis是mybatis的前身,在2010年7\8月份ibatis所项目移到了google,就将ibatis3.x正式改名为mybatis3.x了。除此之外,mybatis相比ibatis使用起来更加方便,有:1)Mybatis实现了接口绑定,使用更加方便。 2)对象关系映射的改进,效率更高3)MyBatis采用功能强大的基于O原创 2015-12-13 10:06:24 · 12676 阅读 · 1 评论 -
使用框架的好处,hibernate缓存
使用框架的好处1)提升开发效率:包括开发和维护2)需求变更:减少改动量3)解耦架构hibernate缓存一级缓存(Session的缓存和SessionFactory的内置缓存)、二级缓存(SessionFactory的外置缓存)。其中内置缓存中存放了映射元数据和预定义SQL语句,是只读的;外置缓存,其数据是数据库数据的拷贝,其介质可以是内存或者硬盘。原创 2015-11-23 15:47:55 · 612 阅读 · 0 评论 -
ChannelPipeline
Netty4Netty是一个和MINA类似的Java NIO框架,目前的最新版本是4.0.13,这两个框架的主要作者好像都是同一个韩国人。ChannelChannel是Netty最核心的接口,一个Channel就是一个联络Socket的通道,通过Channel,你可以对Socket进行各种操作。ChannelHandler用Netty编写网络程序的时候,你很少直接操纵Channel,而是...转载 2020-04-22 09:37:32 · 3371 阅读 · 0 评论 -
springboot集成rocketmq
本文是springboot集成rocketmq的入门篇,主要介绍单机环境下安装rocketmq,并集成到springboot框架中,实现字符串类型消息的生产和消费。 1)高可用集群部署方案请参考 待更新。。。 2)更多使用方式请参考 待更新。。。一、下载、安装、启动1、下载http://rocketmq.apache.org/dowloading/releases/2、安装...原创 2020-02-17 22:22:07 · 1319 阅读 · 0 评论 -
SpringCloud与SpringBoot版本兼容性
Spring Cloud是在Spring Boot基础上构建的,用于快速构建分布式系统的通用模式工具集,适合在Docker或PaaS上部署,又叫云原生应用。(云原生指面向云环境的软件架构)一、SpringCloud版本1、命名规则:英文单词 RELEASE 或 英文单词 SRX2、解释: 1)英文单词:按照字母顺序发行 2)第一个稳定版本为:英文单词 RELEASE 3)SR1:...原创 2019-05-01 14:27:01 · 1717 阅读 · 0 评论 -
Spring Integration
系统集成Spring Integration提供了基于Spring的EIP(Enterprise Integration Patterns,企业集成模式)的实现,主要解决不同系统之间的交互问题,通过异步消息驱动来达到系统交互时系统之间的松耦合,由Message、Channel、Message EndPoint组成。一、Message:用来在不同部分...原创 2019-02-16 13:02:45 · 2364 阅读 · 0 评论 -
Spring Batch
Spring Batch是用来处理大量数据操作的一个框架,读取大量数据然后进行一定处理后输出成指定的形式。组成部分:1)JobRepository:用来注册Job的容器2)JobLauncher:用来启动Job的接口3)Job:要实际执行的任务,包含一个或多个Step4)Step:执行步骤,包含5)6)7)5)ItemReader:用来读取数据的接口6)ItemProcessor:用...原创 2019-02-16 10:35:22 · 232 阅读 · 0 评论 -
Spring Cache
Spring对缓存的支持,org.springframework.cache.CacheManager是Spring提供的各种缓存技术抽象接口,org.springframework.cache.Cache接口包含缓存的各种操作(增删查)1、spring 定义的CacheManager实现CacheManager描述SimpleCacheManager使用简单的Colle...原创 2019-02-13 11:33:30 · 290 阅读 · 0 评论 -
WebSocket
一、双向通信常用解决方案常用单向通信,前端发出请求,服务端作出响应。很多场景下需要服务端主动向客户端发出通知,常见解决方案:1、轮询1)简单轮询:间隔固定时间,向服务端发送请求来刷新页面数据。缺点:建立连接,资源消耗2)变间隔轮询:间隔不固定,若返回数据无变化,则延长请求间隔时间,反之有变化则缩短请求间隔时间3)带缓存的轮询:设置数据失效时间,优先从客户端缓存中获取,失效后从服务端获取。...原创 2019-02-12 11:28:16 · 301 阅读 · 0 评论 -
SpringBoot配置SSL
一、概念1、为什么要使用证书 对数据进行签名(加密)是我们在网络中最常见的安全操作。签名有双重作用,作用一就是保证数据的完整性,证明数据并非伪造,而且在传输的过程中没有被篡改,作用二就是防止数据的发布者否认其发布了该数据。 &am原创 2018-11-18 21:00:00 · 8841 阅读 · 0 评论 -
类型安全配置:@ConfigurationProperties
@ConfigurationProperties可以看作@Value的升级版,通过该注解可将配置文件中的属性和一个Bean关联,从而实现类型安全的配置一、添加依赖包&lt;dependency&gt; &lt;groupId&gt;org.springframework.boot&lt;/groupId&gt; &lt;artifactId&gt;spring-bo原创 2018-11-17 08:57:05 · 927 阅读 · 0 评论 -
Spring事务详解
一、事务失效原因1、如使用mysql且引擎是MyISAM,则事务会不起作用,原因是MyISAM不支持事务,可以改成InnoDB 2、如果使用了spring+mvc,则context:component-scan重复扫描问题可能会引起事务失败 3、 @Transactional 注解开启配置,必须放到listener里加载,如果放到DispatcherServlet的配置里,事务也是不起作用...原创 2018-08-22 17:57:19 · 297 阅读 · 0 评论 -
SpringDao异常
Spring的DAO框架没有抛出与特定技术相关的异常 例如SQLException或HibernateException,抛出的异常都是与特定技术无关的org.springframework.dao.DataAccessException类的子类,避免系统与某种特殊的持久层实现耦合在一起。DataAccessException是RuntimeException,是一个无须检测的异常,不要求代码去...原创 2018-06-27 20:32:30 · 1284 阅读 · 0 评论 -
springmvc与struts2区别
一、框架机制1、Struts2采用Filter(StrutsPrepareAndExecuteFilter)实现,SpringMVC(DispatcherServlet)则采用Servlet实现。 2、Filter在容器启动之后即初始化;服务停止以后坠毁,晚于Servlet。Servlet在是在调用时初始化,先于Filter调用,服务停止后销毁。二、拦截机制1、Struts2...转载 2018-04-06 12:11:53 · 846 阅读 · 0 评论 -
springboot集成mybatis
一、Demo数据库样例1、db_test_user(用户库):t_custom、t_sellerSET FOREIGN_KEY_CHECKS=0;-- ------------------------------ Table structure for t_custom-- ----------------------------DROP TABLE IF EXISTS `t_c原创 2018-01-07 15:43:00 · 398 阅读 · 0 评论 -
Spring Boot 引用本地jar包
Spring Boot 的项目常用maven管理jar包,并使用maven将项目打成可部署或运行的包,此篇主要介绍在springboot maven项目中如何将自己本地的jar包添加到项目中。1、与src平级创建文件夹“lib”(后续直接对该文件夹操作,若读者的文件夹不同,则后续篇幅中直接把lib的位置换成你自己的文件夹就可以了)2、将本地jar包拷贝到lib目录下原创 2017-11-09 12:43:59 · 7076 阅读 · 0 评论 -
springboot集成hibernate-jpa方式
1、maven依赖<!-- Hibernate依赖 --> org.springframework.boot spring-boot-starter-data-jpa mysql mysql-connector-java2、application.yml# Hibernate JPAspring: datasource:原创 2017-06-12 22:10:30 · 14257 阅读 · 1 评论 -
springboot输出日志
默认情况下spring boot是不将日志输出到日志文件中配置错误日志:#错误日志logging: level: com.glodon.springboot: error file: D://demo.log原创 2017-06-12 22:08:43 · 2677 阅读 · 0 评论 -
springboot使用拦截器
1、定义拦截器类@Componentpublic class WebInterceptor extends HandlerInterceptorAdapter { @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object h...原创 2017-06-12 22:07:49 · 669 阅读 · 0 评论 -
springboot使用AOP
1、添加依赖 org.springframework.boot spring-boot-starter-aop2、设置切面@Aspect@Configurationpublic class AopConfig { @Pointcut("execution(* com.glodon.springboot.controller.AopController.tes原创 2017-06-12 22:06:44 · 4468 阅读 · 0 评论 -
springboot使用定时任务、异步
1、定时任务:纯注解方式@Configuration@EnableScheduling@Componentpublic class TaskConfig { // 定时任务:每天凌晨3点跑定时 @Scheduled(cron = "0 0 3 * * ?") public void myTask() { System.out.println("定原创 2017-06-12 22:05:09 · 6324 阅读 · 1 评论 -
springboot使用fastjson
1、spring boot默认json解析框架是jackson2、引入fastjson依赖:必须是1.2.10以上版本才支持<dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1...原创 2017-06-12 22:04:03 · 2269 阅读 · 0 评论 -
spring boot 全局异常捕捉
所有未吃掉的异常均会被其捕获@ControllerAdvicepublic class GlobalExceptionProcessor { @ResponseBody @ExceptionHandler public String processException(Exception e) { System.out.println("全局异常处理器原创 2017-06-12 22:03:01 · 2013 阅读 · 0 评论 -
spring boot配置文件
1、配置文件 1)application.properties(核心配置文件)test.a= a_propertiestest.b = b_${test.a} 2)application.yml(核心配置文件)test: a: a.yml b: b_${test.a} c: c.yml d: d_${test.c} 3)other原创 2017-06-12 22:02:04 · 633 阅读 · 0 评论 -
spring boot 部署、启动
1、热部署 1)CTRL + SHIFT+ A --> 查找make project automatically --> 选中 2)CTRL + SHIFT+ A --> 查找Registry --> 找到并勾选compiler.automake.allow.when.app.running 3)重启IDEA 4)原创 2017-06-12 21:59:36 · 775 阅读 · 0 评论 -
spring boot 框架解析
1、springboot框架1)见创建工程时选择依赖组件2)spring-boot-starter-parent4.0.0org.springframework.bootspring-boot-dependencies1.5.4.RELEASE../../spring-boot-dependenciesspring-boot-starter-pare原创 2017-06-12 21:58:17 · 3107 阅读 · 0 评论 -
SpringBoot-HelloWorld
1、创建spring bootproject2、工程结构 3、修改maven LocalRepository地址4、编写测试类HelloControllerpackage com.glodon.springboot.controller;import org.springframework.web.bind原创 2017-06-12 21:48:11 · 645 阅读 · 0 评论 -
SpringBoot简介
1、spring技术栈演进spring mvc-->springboot-->spring cloud-->微服务 1)spring mvc构建Web应用程序的全功能 MVC 模块 2)spring boot不是为已解决的问题域提供新的解决方案,而是用来简化spring应用的初始搭建以及开发过程。从最根本上来讲,Spring Boot就是一些库的集合,它能够原创 2017-06-12 21:43:00 · 2073 阅读 · 0 评论 -
@Controller和@RestController区别
@Controller和@RestController的区别4.0重要的一个新的改进是@RestController注解,它继承自@Controller注解。4.0之前的版本,Spring MVC的组件都使用@Controller来标识当前类是一个控制器servlet。使用这个特性,我们可以开发REST服务的时候不需要使用@Controller而专门的@RestController。转载 2017-05-24 10:26:31 · 1239 阅读 · 0 评论 -
spring使用jpa进行update操作
使用spring jpa 进行update 方法总结以及常见坑解决方法原创 2017-05-13 12:10:40 · 116027 阅读 · 3 评论 -
如何在工具类中使用spring bean
工具类的静态方法中使用spring中注入的元素原创 2017-03-30 20:03:44 · 3511 阅读 · 2 评论