spring容器干掉if-else】的更多相关文章

一次项目代码重构-使用spring容器干掉条件判断 这是在一次公司项目中进行重构时,一些复杂业务时想到的一个去掉一些if else的办法.能够使代码逻辑更加清晰,减少一些业务上的耦合. 业务说明 我所在的是一个做保险的项目组,这次重构是针对其中的保费计算和核保的业务. 项目重构之前,在保费计算的接口中,有大量的条件判断语句来判断这次进行保费计算的产品是哪一个,然后调用该产品的保费计算方法.代码大致看起来就是这个样子: //产品编号 String product = "123123";…
spring容器干掉if-else 场景说明 最近新做一个项目,需要对不同店铺的商品做不同处理.例如storeA需要进行handleA操作,storeB需要进行handleB操作,如此类推 大家很容易会想到下面的实现方法 public void handle(String storeName) { //店铺A做操作handleA处理 if(storeName.equals("storeA")) { handleA(); } else if (storeName.equals("…
场景说明 最近新做一个项目,需要对不同店铺的商品做不同处理.例如storeA需要进行handleA操作,storeB需要进行handleB操作,如此类推 大家很容易会想到下面的实现方法 public void handle(String storeName) { //店铺A做操作handleA处理 if(storeName.equals("storeA")) { handleA(); } else if (storeName.equals("storeB")) {…
线上发现一个问题,应用在启动时会卡死,log上并没有什么异常输出,初判应该是死锁问题. 抓现场的thread dump文件, 确实是有两个线程有deadlock问题. 线程一 "HSFBizProcessor-8-thread-13" daemon prio=10 tid=0x00007fc686a83000 nid=0x37128 waiting for monitor entry [0x000000004b7f3000] java.lang.Thread.State: BLOCKE…
spring中最常用的控制反转和面向切面编程. 一.IOC IoC(Inversion of Control,控制倒转).对于spring框架来说,就是由spring来负责控制对象的生命周期和对象间的关系.在一个对象中,如果要使用另外的对象,就必须得到它(自己new一个,或者从JNDI中查询一个),使用完之后还要将对象销毁(比如Connection等),对象始终会和其他的接口或类藕合起来. 所有的类都会在spring容器中登记,告诉spring你是个什么东西,你需要什么东西,然后spring会在…
一.先说一个结论:单元测试与主项目的spring容器是隔离的,也就是说,单元测试无法访问主项目spring容器,需要自己加载spring容器. 接下来是代码实例,WEB主项目出于运行状态,单元测试中可能会看到如下这样的代码: 代码一:当前类加载式 public class TestSpring { @Test public void testSpring(){ LoginService loginService = this.getBean("loginService"); } //以…
转载:http://www.jianshu.com/p/d191fe54915f 整合Spring容器 @SpringApplicationConfiguration(classes = Application.class) @WebAppConfiguration public class TestBase { @Autowired protected TedaCaseService tedaCaseService; private TestContextManager testContext…
Spring提供了两个核心接口:BeanFactory和ApplicationContext,其中applicationContext是BeanFactory的子接口. 他们都可代表Spring容器,Spring容器是生成Bean实例的工厂,并管理容器中的Bean. Bean是Spring管理的基本单位,在基于Spring的JavaEE应用中,所有的组件都被当成Bean处理,包括数据源.Hibernate的SessionFactory.事务管理器等. BeanFactory: Spring容器最…
Spring框架的核心功能之一就是控制反转(Inversion of Control, IoC),也叫做依赖注入(dependency injection, DI).关于依赖注入的具体内容可以参见Martin Fowler写的一篇文章<Inversion of Control Containers and the Dependency Injection pattern>. Spring容器接口是BeanFactory,其提供了一些方法来配置和管理对象.ApplicationContext是B…
spring容器对bean的生命周期管理主要在两个时间点:bean的初始化完成(包括属性值被完全注入),bean的销毁(程序结束,或者引用结束)方式一:使用springXML配置中的init-method="init" destroy-method="destory" 这个两个配置,可以实现两个时间点插入定制的操作.方式二: 使用spring提供的2个接口:InitializingBean,DisposableBean方式三:使用java注解:@PostConstr…