![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Spring
genghaihua
这个作者很懒,什么都没留下…
展开
-
spring context:property-placeholder 多个properties的使用
Spring容器是采用反射扫描的发现机制,通过标签的命名空间实例化实例,当Spring探测到容器中有一个org.springframework.beans.factory.config.PropertyPlaceholderCVonfigurer的Bean就会停止对剩余PropertyPlaceholderConfigurer的扫描,即只能存在一个实例。那如果有多个配置文件怎么办呢?那就多个文...原创 2018-09-09 12:37:28 · 1599 阅读 · 0 评论 -
Servlet中的过滤器Filter详解
web.xml中元素执行的顺序listener->filter->struts拦截器->servlet。1.过滤器的概念Java中的Filter 并不是一个标准的Servlet ,它不能处理用户请求,也不能对客户端生成响应。 主要用于对HttpServletRequest 进行预处理,也可以对HttpServletResponse 进行后处理,是个典型的处理链。优点:...原创 2019-03-26 17:42:56 · 493 阅读 · 0 评论 -
dubbo中 provider和 comsumer端timeout的设置区别
dubbo的机制是如果服务的调用者配置了超时时间,会覆盖服务的提供者设置的超时时间.请注意,如果服务的调用者覆盖了服务提供者的远程方法调用超时时间,那么对于服务的提供者就会变得不可控,即服务的调用者控制了服务提供者方法执行的超时时间,这对于一次远程调用是非常不合理的,所以dubbo非常不建议在服务的调用者配置中配置服务的超时时间....原创 2019-03-27 17:15:23 · 1180 阅读 · 0 评论 -
Spring RootBeanDefinition,ChildBeanDefinition,GenericBeanDefinition
RootBeanDefinition,ChildBeanDefinition,GenericBeanDefinition均继承了AbstractBeanDefiniton,其中BeanDefinition是配置文件<bean>元素标签在容器中内部表示形式。<bean>元素标签拥有class、scope、lazy-init等配置属性,BeanDefinition则提供了相应的...转载 2019-04-20 20:12:52 · 1827 阅读 · 0 评论 -
spring ImportBeanDefinitionRegistrar 实现bean的动态注入
借助ImportBeanDefinitionRegistrar接口实现bean的动态注入spring官方就是用这种方式,实现了@Component、@Service等注解的动态注入机制。定义一个ImportBeanDefinitionRegistrar的实现类,然后在有@Configuration注解的配置类上使用@Import导入registerBeanDefinitions方法中有一个...原创 2019-04-20 20:23:29 · 1123 阅读 · 0 评论 -
Spring自定义标签和spring.handlers spring.schemas
1 schema配置2 Spring自定义标签:Spring自定义标签的原理XML通常通过DTD、XSD定义,但DTD的表达能力较弱,XSD定义则能力比较强,能够定义类型,出现次数等。自定义标签需要XSD支持,在实现时使用Namespace扩展来支持自定义标签。当你在苦逼的写下面的代码时:Xml代码<beanid="beanId"class="com.xxx.xxx...转载 2019-04-20 20:43:21 · 884 阅读 · 0 评论 -
Spring ApplicationContextAware
但在某些特殊的情况下,Bean需要实现某个功能,但该功能必须借助于Spring容器才能实现,此时就必须让该Bean先获取Spring容器,然后借助于Spring容器实现该功能。为了让Bean获取它所在的Spring容器,可以让该Bean实现ApplicationContextAware接口。Implementing this interface makes sense for example...原创 2019-04-20 21:26:10 · 149 阅读 · 0 评论 -
netty ChannelFuture与ChannelPromise
ChannelPromise是一种可写的特殊ChannelFuturepublic interface ChannelPromise extends ChannelFuture, Promise<Void>对于Promise:public interface Promise<V> extends Future定义了可以标识Future成功或者失败的方法,...原创 2019-04-26 13:18:09 · 1223 阅读 · 0 评论 -
netty ChannelDuplexHandler
/** * {@link ChannelHandler} implementation which represents a combination out of a {@link ChannelInboundHandler} and * the {@link ChannelOutboundHandler}. * * It is a good starting point if your...原创 2019-04-26 13:21:38 · 3101 阅读 · 0 评论 -
虚拟内存与物理内存的联系与区别
操作系统有虚拟内存与物理内存的概念。在很久以前,还没有虚拟内存概念的时候,程序寻址用的都是物理地址。程序能寻址的范围是有限的,这取决于CPU的地址线条数。比如在32位平台下,寻址的范围是2^32也就是4G。并且这是固定的,如果没有虚拟内存,且每次开启一个进程都给4G的物理内存,就可能会出现很多问题:因为我的物理内存时有限的,当有多个进程要执行的时候,都要给4G内存,很显然你内存小一点,这很快就...转载 2019-04-22 13:15:41 · 251 阅读 · 0 评论 -
spring Autowired和Resource注解的区别
@Autowired是按 byType 自动注入。如果当spring上下文中存在不止一个接口类型的bean时,就会抛出BeanCreationException异常。我们可以使用@Qualifier配合@Autowired来解决这些问题。如下:@Autowired @Qualifier("userServiceImpl") public IUserService userServ...原创 2019-04-18 16:47:27 · 1050 阅读 · 0 评论 -
es数据写入流程
1数据写入过程Lucene 把每次生成的倒排索引,叫做一个段(segment)。然后另外使用一个 commit 文件,记录索引内所有的 segment。而生成 segment 的数据来源,则是内存中的 buffer。1、数据写入 --> 进入ES内存 buffer (同时记录到translog)--> 生成倒排索引分片(segment)2、将 buffer 中的 segm...原创 2019-04-28 14:14:31 · 8934 阅读 · 1 评论 -
dubbo参数调优
Dubbo调用模型常用性能调优参数参数名 作用范围 默认值 说明 备注 threads provider 200 业务处理线程池大小 iothreads provider CPU+1 io线程池大小 queues provider 0 线程池队列大小,当线程...转载 2019-04-19 13:18:53 · 302 阅读 · 0 评论 -
Dubbo线程模型
下面我们要看一下默认情况下的线程模型:首先明确一个基本概念:IO线程和业务线程的区别IO线程:配置在netty连接点的用于处理网络数据的线程,主要处理编解码等直接与网络数据打交道的事件。 业务线程:用于处理具体业务逻辑的线程,可以理解为自己在provider上写的代码所执行的线程环境。Dubbo默认采用的是长链接的方式,即默认情况下一个consumer和一个provider之间只会建立一...转载 2019-04-19 13:21:31 · 550 阅读 · 0 评论 -
dubbo Dispatcher和ThreadPool配置
dispatcher:这个字段代表的是IO线程池和业务线程池的边界 all:所有消息都派发到线程池,包括请求,响应,连接事件,断开事件,心跳等。对应的是AllChannelHandler direct:所有消息都不派发到线程池,全部在IO线程上直接执行。(这种做法在绝大多数情况下都不合理,因为毕竟业务逻辑相关对IO事件都是复杂的)。具体的实现方式就是在装饰者的层级上直接下调,不再包装线程...原创 2019-04-19 13:27:51 · 1794 阅读 · 0 评论 -
dubbo服务端接口限流
包括接口级别和方法级别的限流方法级配置dubbo:method(该标签为<dubbo:service>或<dubbo:reference>的子标签,用于控制到方法级)dubbo:method 的executes参数接口级别的:<dubbo:service interface="com.foo.BarService" executes="10...原创 2019-04-19 14:00:32 · 1658 阅读 · 0 评论 -
getContextPath、getServletPath、getRequestURI 区别
若web application 名称为myweb,你在浏览器中输入请求路径:http://localhost:8090/myweb/main/welcome.jspinput output 关系如下:1、 System.out.println(request.getContextPath());result:/myweb2、System.out.println(request....原创 2019-03-26 13:25:31 · 177 阅读 · 0 评论 -
mvc:annotation-driven 注解spring mvc作用
自己看了官方文档,也到网上查了下,目前理解如下:<mvc:annotation-driven/>相当于注册了DefaultAnnotationHandlerMapping和AnnotationMethodHandlerAdapter两个bean,配置一些messageconverter。即解决了@Controller注解的使用前提配置。<context:annotat...翻译 2019-03-13 11:54:17 · 470 阅读 · 0 评论 -
spring constructor-arg和property的区别
constructor-arg:通过构造函数注入。 property:通过setter对应的方法注入。原创 2018-09-09 14:40:19 · 711 阅读 · 0 评论 -
Spring boot @ConfigurationProperties和@EnableConfigurationProperties 作用
本文转载于https://blog.csdn.net/u010502101/article/details/78758330@ConfigurationProperties注解主要用来把properties配置文件转化为bean来使用的,而@EnableConfigurationProperties注解的作用是@ConfigurationProperties注解生效。如果只配置@Configu...转载 2018-09-12 10:46:29 · 1078 阅读 · 0 评论 -
Spring Aop
Aop(aspect object programming)面向切面编程,名词解释: 1.1:功能:让关注点代码与业务逻辑代码分离 1.2:关注点 重复代码就叫做关注点 1.3:切面 关注点形成的类,就叫做切面(类) 面向切面编程,就是指对很多功能都有的重复代码抽取,再在运行的时候往业务方法上动态植入"切面类代码"; ...原创 2018-10-08 17:30:36 · 142 阅读 · 0 评论 -
解决org.apache.zookeeper.ZooKeeper.(Ljava/lang/String;ILorg/apache/zookeeper/Watcher;Z)V
这是我在spring本地测试遇到的一个问题zookeeper版本冲突问题,可能是其他包引用了不同版本的zk包。intellij idea可以通过show dependece查看maven项目中的zk版本...原创 2018-11-29 13:37:39 · 3669 阅读 · 0 评论 -
Spring应用--实现InitializingBean接口
有时候会遇到这样的问题:在我们将一个Bean交给Spring管理的时候,有时候我们的Bean中有某个属性需要注入,但是又不能通过一般的方式注入,什么意思呢?举个栗子:首先我们有个Service,在该Service中有一个属性,但是该属性不支持Spring注入,只能通过Build或者new的方式创建(比如StringBuffer之类的),但是我们想在Spring配置Bean的时候一起将该属性注入进...转载 2018-12-05 14:59:03 · 630 阅读 · 0 评论 -
spring 注解Target Retention Documented
@Target({ElementType.TYPE}) 注解如ElementType.METHOD, ElementType.FIELDElementType 这个枚举类型的常量提供了一个简单的分类:注释可能出现在Java程序中的语法位置(这些常量与元注释类型(@Target)一起指定在何处写入注释的合法位置)@Retention({RetentionPolicy.Runtime}) ...原创 2018-12-05 11:20:18 · 321 阅读 · 0 评论 -
spring constructor-arg和property的区别
constructor-arg:通过构造函数注入。 property:通过setter对应的方法注入。原创 2018-11-07 11:48:04 · 227 阅读 · 0 评论 -
spring annotation
https://blog.csdn.net/yeyincai/article/details/51702059annotation总结分析 基于类的注解:--初始装载@SpringBootApplication spring-boot程序入口标志类@Configuration 自动配置,类似于加载s...转载 2018-09-12 15:08:05 · 194 阅读 · 0 评论 -
org.springframework.web.context.ContextLoaderListener
在web.xml中配置<listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class></listener>ContextLoaderListener的作用就是启动Web容器时,自动装配Applica...转载 2018-12-09 14:59:54 · 2384 阅读 · 0 评论 -
ServletContextListener和ContextLoaderListener 区别
https://blog.csdn.net/fengshoudong/article/details/78886289ServletContextListener接口用于tomcat启动时自动加载函数,方法如下: 一、需加载的类必须实现ServletContextListener接口。 二、该接口中有两个方法必须实现: 1、contextInitialized(ServletContex...转载 2018-12-09 15:06:21 · 594 阅读 · 0 评论 -
Dubbo在XML中各配置标签属性含义
Dubbo在XML中各配置标签属性含义 https://blog.csdn.net/zht741322694/article/details/78926345转载 2018-12-15 14:01:02 · 293 阅读 · 0 评论 -
mybatis的mapping文件中大于小于符号转换
原符号 < <= > >= & ' "替换符号 &lt; &lt;= &gt; &gt;= &amp; &apos; &quot;...原创 2019-02-15 16:30:20 · 912 阅读 · 0 评论 -
mybatis resultType解析
resultType是sql映射文件中定义返回值类型,返回值有基本类型,对象类型,List类型,Map类型等。现总结一下再解释总结:resultType:1、基本类型 :resultType=基本类型2、List类型: resultType=List中元素的类型3、Map类型 单条记录:resultType =map ...转载 2019-02-19 20:33:04 · 1358 阅读 · 0 评论 -
实现动态添加到spring容器
定义一个beanpublic class Person { private String name; public String getName() { return name; } public void setName(String name) { this.name = name; } @O...转载 2019-03-12 19:47:44 · 976 阅读 · 0 评论 -
从Commons CLI迁移到Picocli
为何迁移?从Commons CLI迁移到Picocli值得吗?从一个命令行解析器移动到另一个命令行解析器有什么好处?这不只是重新装修我们应用程序的起居室吗?最终用户体验最终用户有哪些好处?命令行完成。基于Picocli的应用程序可以在bash和zsh shell以及基于JLine的交互式shell应用程序中完成命令行。美观,高度可读的用法帮助信息。Commons CLI生成的使用帮...转载 2019-03-13 11:46:39 · 1545 阅读 · 0 评论 -
Java Proxy动态代理
动态代理在Java中有着广泛的应用,比如Spring AOP、RPC,Java注解对象获取等。hadoop 远程调用也采用socket+java动态代理实现。首先实现一个InvocationHandler,方法调用会被转发到该类的invoke()方法。 然后在需要使用Hello的时候,通过JDK动态代理获取Hello的代理对象。 上述代码的关键是Proxy.newProxyInsta...原创 2019-05-05 19:50:14 · 130 阅读 · 0 评论