靖江市属于哪里有做网站的,潍坊seo外包平台,随州网站建设有哪些,深圳网络推广公司哪家好Spring框架是由于软件开发的复杂性而创建的。Spring使用的是基本的JavaBean来完成以前只可能由EJB完成的事情。然而#xff0c;Spring的用途不仅仅限于服务器端的开发。从简单性、可测试性和松耦合性角度而言#xff0c;绝大部分Java应用都可以从Spring中受益。 Spring中的单… Spring框架是由于软件开发的复杂性而创建的。Spring使用的是基本的JavaBean来完成以前只可能由EJB完成的事情。然而Spring的用途不仅仅限于服务器端的开发。从简单性、可测试性和松耦合性角度而言绝大部分Java应用都可以从Spring中受益。 Spring中的单例Beans是线程安全的吗
Spring框架中的单例Beans在创建时是线程安全的但在使用时是否线程安全取决于具体的设计和实现。 spring中的bean如果是无状态的不共享数据那么是线程安全的。如果说spring中的bean存在共享数据的情况。那 么就是线程不安全的需要自行进行并发处理。或者使用多例模式。
Spring中事务传播行为
PROPAGATION_REQUIRED–支持当前事务如果当前没有事务就新建一个事务。这是最常见的选择。 PROPAGATION_SUPPORTS–支持当前事务如果当前没有事务就以非事务方式执行。 PROPAGATION_MANDATORY–支持当前事务如果当前没有事务就抛出异常。
PROPAGATION_REQUIRES_NEW–新建事务如果当前存在事务把当前事务挂起。 PROPAGATION_NOT_SUPPORTED–以非事务方式执行操作如果当前存在事务就把当前事务挂起。 PROPAGATION_NEVER–以非事务方式执行如果当前存在事务则抛出异常。
Spring事务中的隔离级别有哪几种
在TransactionDefinition接口中定义了五个表示隔离级别的常量 ISOLATION_DEFAULT使用后端数据库默认的隔离级别 Mysql默认采用的REPEATABLE_READ隔离级别 Oracle 默认采用的READ_COMMITTED隔离级别。 ISOLATION_READ_UNCOMMITTED最低的隔离级别允许读取尚未提交的数据变更可能会导致脏读、幻读或不 可重复读。 ISOLATION_READ_COMMITTED允许读取并发事务已经提交的数据可以阻止脏读但是幻读或不可重复读仍有 可能发生 ISOLATION_REPEATABLE_READ对同一字段的多次读取结果都是一致的除非数据是被本身事务自己所修改可 以阻止脏读和不可重复读但幻读仍有可能发生。 ISOLATION_SERIALIZABLE最高的隔离级别完全服从ACID的隔离级别。所有的事务依次逐个执行这样事务之间 就完全不可能产生干扰也就是说该级别可以防止脏读、不可重复读以及幻读。但是这将严重影响程序的性能。通 常情况下也不会用到该级别。
Spring中用到了哪些设计模式
单例模式 Spring默认创建的Bean就是单例的。进一步的依赖注入Bean实例默认是double check的单例模式。并且用 ConcurrentHashMap保证线程安全。 代理模式 AOP底层就是动态代理模式的实现。分JDK动态代理和CGLIB两种默认使用jdk动态代理如果开启了cglib则优先使用 cglib。如果没有接口 jdk动态代理会失效。cglib则没有这个问题 工厂方法Spring中的BeanFactory就是工厂模式的体现将对象的创建交给工厂来做。 原来依赖方和被依赖方耦合在一起现在beanFactory将bean之间的耦合打开了。依赖方到工厂里拿依赖不直接和 被依赖方接触耦合了 模版模式 模板方法模式是一种行为设计模式模版模式类似继承父类定义规则子类具体实现 Spring 中 jdbcTemplate、 hibernateTemplate 等以Template 结尾的对数据库操作的类它们就使用到了模板模 式。 装饰者模式 Spring 在配置DataSource 的时候 DataSource 可能是不同的数据库和数据源。这个时候就要用到装饰者模式。 Spring 中用到的包装器模式在类名上含有Wrapper或者Decorator。这些类基本上都是动态地给一个对象添加一些 额外的职责。 适配器模式
实现方式 SpringMVC中的适配器HandlerAdatper。 实现原理 HandlerAdatper根据Handler规则执行不同的Handler。 实现过程 DispatcherServlet根据HandlerMapping返回的handler向HandlerAdatper发起请求处理 Handler。 HandlerAdapter根据规则找到对应的Handler并让其执行执行完毕后Handler会向HandlerAdapter返 回一个ModelAndView最后由HandlerAdapter向DispatchServelet返回一个ModelAndView。 实现意义 HandlerAdatper使得Handler的扩展变得容易只需要增加一个新的Handler和一个对应的 HandlerAdapter即可。因此Spring定义了一个适配接口使得每一种Controller有一种对应的适配器实现类让适配 器代替controller执行相应的方法。这样在扩展Controller时只需要增加一个适配器类就完成了SpringMVC的扩展 了。 观察者模式 观察者模式是一种对象行为型模式。 a观察b的行为 b发生时a相应的做出反应、 Spring 事件驱动模型就是观察者模式很经典的一个应用。主要包括三个组成部分事件事件发布者事件订阅 者当事件发生时事件订阅者相应的做出改变。