JAVAEE学习笔记

以后创建常量有三个名字:Constant   SystemParas   StaticValue

上限或者下限命名      max_    min_

包含的范围命名     first      last

包含/排除范围命名  begin  end

 

由于海外数据商偶尔会出现网络不稳定情况,HttpClient请求无限超时,导致定时任务下一次执行阻塞
 解决:设置httpclient超时时间,本次任务超时不会影响下次任务正常执行
// nba quartz 开始更新

 

JAVA中间件:

1>远程过程调用和对象访问中间件:主要解决分布式环境下应用的互相访问问题,这也是支撑我们介绍应用服务化的基础。

2>消息中间件:解决应用之间的消息传递、解耦异步的问题。

3>数据访问中间件:主要解决应用访问数据库的共性问题的组件。

 

SSH小问题集锦:

1>大大简化mapper.xml写法之一:
 <sql id="Base_Column_List" >
         id, createdatetime, modifydatetime, name, pwd, create_time, update_time
  </sql>
 
 <select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.String" >
        select 
        <include refid="Base_Column_List" />
        from tuser
        where id = #{id,jdbcType=VARCHAR}
  </select>
 
2><servlet-mapping>
  /*是拦截所有请求,包括视图解析后跳转的.jsp页面,/则不会拦截视图解析后的.jsp页面!,但是其他的静态资源是比拦截的,直接映射到servlet中,
然而servlet没有响应的路径,故404,但我觉的其实jsp是被拦截到了一个默认的servlet进行了解析~~~
 
3>

 

 


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连接即可:1、获取当前系统所有进程信息 2、获取当前系统所有的TCP连接 3、根据PID断开 某些TCP连接。

posted @ 2017-04-17 10:18  苍穹冰尘  阅读(535)  评论(0编辑  收藏  举报
Live2D