`
文章列表
引言          其实本来真的没打算写这篇文章,主要是LZ得记忆力不是很好,不像一些记忆力强的人,面试完以后,几乎能把自己和面试官的对话都给记下来。LZ自己当初面试完以后,除了记住一些聊过的知识点以外,具体的 ...
摘要 在谈论数据库架构和数据库优化的时候,我们经常会听到“分库分表”、“分片”、“Sharding”…这样的关键词。 在谈论数据库架构和数据库优化的时候,我们经常会听到“分库分表”、“分片”、“Sharding”…这样的关键词。让人感到高兴的是,这些朋友所服务的公司业务量正在(或者即将面临)高速增长,技术方面也面临着一些挑战。让人感到担忧的是,他们系统真的就需要“分库分表”了吗?“分库分表”有那么容易实践吗?为此,笔者整理了分库分表中可能遇到的一些问题,并结合以往经验介绍了对应的解决思路和建议。 垂直分表 垂直分表在日常开发和设计中比较常见,通俗的说法叫做“大表拆小表”,拆分是基于关系 ...

代码规范

    博客分类:
  • Java
今天让我们来谈谈代码吧。代码重要吗?当然,代码就是设计(Jack W.Reeves, 1992);代码是最有价值的交付物。我们需要好代码吗?在给“好代码”下个定义之前,这个问题无法回答。那么,究竟什么是好代码? 看下面这段英文解释: 'Good code' is code that works, is bug free, and is readable and maintainable. Some organizations have coding 'standards' that all developers are supposed to adhere to, but every ...
@Transactional(rollbackFor = { Exception.class }, propagation = Propagation.REQUIRED)适用于嵌套事务,例如:当前方法中增加了事务管理,且当前方法又调用里其它方法,其它方法也许要事务管理情况下使用 @Transactional(rollbackFor = { Exception.class }, propagation = Propagation.REQUIRES_NEW) 独立的事务管理,例如:只有该方法需要事务管理,且不会去调用其它被事务管理的方法情况下使用。
消息机制 测试代码如下: @RunWith(SpringJUnit4ClassRunner.class)@ContextConfiguration(locations={"classpath:spring/applicationContext.xml"})public class UserMqTest {    @Autowired    MessageService messageService;    //    @Ignore    @Test    public void sendM ...
高并并发架构: nginx+tomcat集群+Redis+ActiveMQ redis缓存案例如下: test代码: @RunWith(SpringJUnit4ClassRunner.class)@ContextConfiguration(locations={"classpath:spring/applicationContext.xml"})public class UserDaoRedisTest {            @Autowired        private UserServiceRedis userServiceRedis;        ...
在做java项目(特别是web项 目)的过程中,中文乱码一直是我们开发人员比较头疼的问题,因为涉及到编码,解码,字符集,以及国际化等诸多问题,所以在着手解决的时候也缺乏相关的知 识。我花了一些时间自己动手实验了 ...
注释: 该方法是一个通用方法,不局限多少级,无限级都可以,该示例演示新建页,和编辑页面不同的调用。 新建页面时需要初始化第一个select。编辑页面无需初始化。返回json时,后台对象做过一次简单处理,把pojo的list转 ...
注释: 可在action直接调用该工具类,可传入file或文件路径,支持指定路径文件,和指定物理文件的excel。 工具类会返回一个List对象,拿到该对象后则是业务处理部分,比如:转换为业务对象的pojo,数据校验,迭代插入db等。业务部分代码就不做阐述了。通用部分请看一下代码。 调用工具类: public class uploadDemo {    /**     * @param args     */    public static void main(String[] args) {        List list = ExcelUpLoadUtil.excelUpLo ...
IE浏览器下,不显示之定义错误页面,网上看了部分资料解释为,当页面值小于1024B则,IE会视认为不友好页面,自动更换为IE的错误页面,因此导致无法显示自定义错误页面,关键一点1024b是个什么东东?并不是页面的大小,而且页面网络请求大小,通过google浏览器的工具Network选项里可以看到页面请求响应的size值,如果确实小于1024b的话,就在页面加点废代码进去,填充一下就OK了。 类似于这种: <!-- DEBUG org.springframework.web.servlet.view.velocity.VelocityLayoutView --><!-- ...
在spring applicationContext.xml文件中添加如下配置: <div class="iteye-blog-content-contain" style="font-size: 14px"> <bean id="exceptionResolver" class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver">              <property name=&q ...
在CCS20140328 版本开发中,根据条件查询结果导出Excel数据的时候,IE下和其他常用浏览器也是正常的,唯独360浏览器不行。之后Debug发现,360浏览器不 知道为什么总是老自动提交两次表单,而且第二次提交的表单默认的情况下传过去的是空值,也就是你自己选择的条件无效。这点差点让我崩溃,在网上搜了一天资 料居然一点线索都没有,最后在我的代码中实在找不出问题了,于是把错误转向了浏览器,果不其然是浏览器的问题,360浏览器有个超级变态的功能,就是当你 提交表单到服务器的时候,它会自动的“帮助”你提交一次,而且是带着空值的,结果程序在运算的时候,用第二次的表单值覆盖了前一次的表单值,查 ...
本来自己定义了一个错误页面,不过在ie 中怎么也显示不出来,firefox一点问题都没有,几经查询才知道原来是ie自作聪明给换掉了, 对错误页面的处理在IE 看来页面大小 小于 1024b 会被认为十分不友好,所以ie就将改页面给替换成自己的错误提示页面了,解决办法就是充实一下页面,让大小超过1024b 万恶的IE
如果servlet容器使用的是Tomcat,那么一般会在server.xml中配 置URIEncoding来处理get传参的编码问题。由于我们项目中用了ckfinder,如果不配置URIEncoding的话,上传中文名字的图片 时会显示不出来,因为会将图片路径中的中文转成unicode的形式而此时不能正确的对get解码。配置了URIEncoding以后,IE系列中7、 8、9都没有问题,只有IE6时,貌似IE6对utf8的支持不完全,所以就算是自己在servlet或action中自行转码,也有问题,就是偶数个汉 字可以,奇数个汉字,最后一个是乱码,就算一个字也如此。这时,就想到了不如在jsp中 ...
  直接使用JDBC一个非常普遍的问题就是动态SQL。使用参数值、参数本身和数据列都是动态SQL,通常是非常困难的。典型的解决办法就是用上一堆的IF-ELSE条件语句和一连串的字符串连接。对于这个问题,Ibatis提供了一套标准的相对比较清晰的方法来解决一个问题,这里有个简单的例子:      <select id="getUserList" resultMap="user">          select * from user             <isGreaterThan prepend="and&quo ...
Global site tag (gtag.js) - Google Analytics