- 给自己使用的无需定义接口;即一个模块内部的都是封装的,定义接口并不会得到很多好处,变过几次实现?? “优先面向接口编程,而非实现” 不是必须,是优先;
- 给朋友(第三方)使用的定义接口;即要公开的功能,因为接口就是个契约,就是沟通用的;
- 优先使用setter注入,除非必要才使用构造器注入;
- 使用CGLIB代理,这样基本不会出现AOP代理注入不了或一些隐晦的问题;
- 优先使用Spring提供的XML标签简化功能定义,如<aop:config>、<task:executor>等,而不要使用低层次API;
- 尽量使用XML风格的事务,而不是注解风格;
- 按照配置的内容分多配置文件存放配置,不要一股脑的放在一起,就像不分包那样;
- 可配置部分(如db数据)还是放到XML中,不要什么都注解;
- 使用Spring profile 或 maven profile分环境测试(如开发环境、测试环境、正式机环境);
相关文章
- Spring MVC接收参数(Map,List,JSON,Date,2个Bean)(记录一次面试惨状)
- spring in action 7.2 小结
- 使用spring声明式事务,spring使用AOP来支持声明式事务,会根据事务属性,自动在方法调用之前决定是否开启一个事务,并在方法执行之后决定事务提交或回滚事务。
- 树莓派的GPIO编程
- day1 一、编程语言与计算机五大组成部分
- 实验五 Java网络编程及安全
- c#中@标志的作用 C#通过序列化实现深表复制 细说并发编程-TPL 大数据量下DataTable To List效率对比 【转载】C#工具类:实现文件操作File的工具类 异步多线程 Async .net 多线程 Thread ThreadPool Task .Net 反射学习
- Quartz学习——SSMM(Spring+SpringMVC+Mybatis+Mysql)和Quartz集成详解(四)
- Spring源码情操陶冶-AbstractApplicationContext#obtainFreshBeanFactory
- 浅谈IDEA集成SSM框架(SpringMVC+Spring+MyBatis)