之后建立常量有三个名字:Constant SystemParas StaticValuejava
上限或者下限命名 max_ min_web
包含的范围命名 first lastspring
包含/排除范围命名 begin endsql
JAVA中间件:数据库
1>远程过程调用和对象访问中间件:主要解决分布式环境下应用的互相访问问题,这也是支撑咱们介绍应用服务化的基础。json
2>消息中间件:解决应用之间的消息传递、解耦、异步的问题。浏览器
3>数据访问中间件:主要解决应用访问数据库的共性问题的组件。网络
SSH小问题集锦:app
ByteArrayHttpMessageConverter: 负责读取二进制格式的数据和写出二进制格式的数据;
StringHttpMessageConverter: 负责读取字符串格式的数据和写出二进制格式的数据;
MappingJacksonHttpMessageConverter: 负责读取和写入json格式的数据;
ResourceHttpMessageConverter:负责读取资源文件和写出资源文件数据;
FormHttpMessageConverter: 负责读取form提交的数据(能读取的数据格式为 application/x-www-form-urlencoded,不能读取multipart/form-data格式数据);异步
负责写入application/x-www-from-urlencoded和multipart/form-data格式的数据;
spring.factories文件里每个xxxAutoConfiguration文件通常都会有下面的条件注解:
@ConditionalOnBean:当容器里有指定Bean的条件下(仅仅在当前上下文中存在某个对象时,才会实例化一个Bean)
@ConditionalOnClass:当类路径下有指定类的条件下(某个class位于类路径上,才会实例化一个Bean)
@ConditionalOnExpression:基于SpEL表达式做为判断条件(当表达式为true的时候,才会实例化一个Bean)
@ConditionalOnJava:基于JV版本做为判断条件
@ConditionalOnJndi:在JNDI存在的条件下差在指定的位置
@ConditionalOnMissingBean:当容器里没有指定Bean的状况下(仅仅在当前上下文中不存在某个对象时,才会实例化一个Bean)
@ConditionalOnMissingClass:当类路径下没有指定类的条件下(某个class类路径上不存在的时候,才会实例化一个Bean)
@ConditionalOnNotWebApplication:当前项目不是Web项目的条件下(不是web应用)
@ConditionalOnProperty:指定的属性是否有指定的值
@ConditionalOnResource:类路径是否有指定的值
@ConditionalOnSingleCandidate:当指定Bean在容器中只有一个,或者虽然有多个可是指定首选Bean
@ConditionalOnWebApplication:当前项目是Web项目的条件下。
上面@ConditionalOnXXX都是组合@Conditional元注解,使用了不一样的条件Condition
hosts切换不能当即生效缘由:
发现平常开发/测试 中须要频繁切换hosts,尝试了HostAdmin、SwitchHosts!, HostManager等工具,但都不满意, 他们都有一个很大的问题:切换后不能当即生效,
须要重启浏览器或者手动断开sockets才会生效。 这个 问题对我形成了很大的困扰, 由于平常工做中我会打开不少个tab,而重启浏览器意味着这些tab我都找不回来了;
而手动断开sockets, 至关繁琐,有时候每每由于忘了手动去断开致使发现了不少"bug", 经过观察,发现浏览器不能当即生效是由于不少服务端为了性能使用了TCP复用,
当hosts文件 被修改后,接着刷新浏览器页面,此时浏览器做为客户端继续重用以前的TCP链接, 所以没法生效。
了解缘由后解决方案就比较简单了:我只要在切换后断开相应的TCP链接便可:一、获取当前系统全部进程信息 二、获取当前系统全部的TCP链接 三、根据PID断开 某些TCP链接。