哈尔滨网站建设兼职,wordpress 登录页,智能建造技术就业前景,网站建设 seo结构一、spring体系 1. spring是什么#xff1f;
轻量级的开源的J2EE框架。它是一个容器框架#xff0c;主要实现了ioc#xff0c;同时又通过aop实现了面向切面编程#xff0c;它又是一个中间层框架#xff08;万能胶#xff09;可以起一个连接作用#xff0c;比如说把myba…一、spring体系 1. spring是什么
轻量级的开源的J2EE框架。它是一个容器框架主要实现了ioc同时又通过aop实现了面向切面编程它又是一个中间层框架万能胶可以起一个连接作用比如说把mybatis和spring mvc粘合在一起运用可以让我们的企业开发更快、更简洁 二. 设计模式
1.简单工厂模式
Spring中的BeanFactory就是简单工厂模式的体现根据传入一个唯一的标识来获得Bean对象但是否是在传入参数后创建还是传入参数前创建这个要根据具体情况来定即是否是使用懒加载。
如:BeanFactory接口获取bean和Spring在jvm启动时创建bean实列及对应映射关系工厂。
2.抽象工厂模式
抽象工厂方法模式说白了其实就是简单工厂模式的一种升级或者说是进一步抽象它可以应用于更加复杂的场景灵活性也更高。在简单工厂中由工厂类进行所有的逻辑判断、实例创建如果不想在工厂类中进行判 断可以为不同的产品提供不同的工厂不同的工厂生产不同的产品每一个工厂都只对应一个相应的对 象这就是抽象工厂方法模式。
Spring中的FactoryBean就是这种思想的体现FactoryBean可以理解为工厂Bean先来看看它的定义 我们定义一个类UserFactoryBean来实现FactoryBean接口主要是在getObject方法里new一个User对象。
这样我们通过getBean(id) 获得的是该工厂所产生的User的实例而不是UserFactoryBean本身的实例像 下面这样 3.单例模式
单例模式是指一个类在整个系统运行过程中只允许产生一个实例。
在Spring中Bean可以被定义为两种 模式prototype多例和singleton单例Spring Bean默认是单例模式。
那Spring是如何实现单例模 式的呢
答案是通过单例注册表的方式保证一个类仅会创建一个实例并提供一个访问它的全局访问点。具体来说就是使用了HashMap。
请注意为了方便你阅读我对代 码进行了简化 上面的代码逻辑比较清晰先到HashMap去拿单实例对象没拿到就创建一个添加到HashMap。
提供了全局的访问点BeanFactory。同时在创建时也保证只会创建一个对象。
那如何保证的
spring会判断bean的作用域是否为单例如果是则会从单列池缓存中一般为hashmap的数据结构直接取如果为空则创建对于的对象。
4.代理模式
主要是在aop中体现。
Spring的AOP采用的是动态代理的方式而动态代理就是指代理类在程序运行时由JVM动态创建。
Spring实现了通过动态代理对类进行方法级别的切面增强切面在应用运行的时刻被织入。一般情况下在织入切面时AOP容器会为目标对象动态的创建一个代理 对象。并在代理类的方法中设置拦截器通过执行拦截器中的逻辑增强了代理方法的功能从而实现 AOP
判断是否创建代理对象会根据配置的切点进行过滤。
代理模式的好处是可以在目标对象业务功能的基础上添加一些公共的逻辑比如我们想给目标对象加入日 志、权限管理和事务控制等功能我们就可以使用代理类来完成而没必要修改目标类从而使得目标类保 持稳定。这其实是开闭原则的体现不要随意去修改别人已经写好的代码或者方法。
5.观察者模式
spring的事件驱动模型使用的是观察者模式即spring使用到的事件机制。
Spring中Observer模式常用的地方是listener的实现。
详情可参考我的博客 Spring Events事件机制_spring evnet原因-CSDN博客 6.模板模式
父类定义了骨架调用哪些方法及顺序某些特定方法由子类实现。
最大的好处代码复用减少重复代码。除了子类要实现的特定方法其他方法及方法调用顺序都在父类中预先写好了。
比如refresh方法 3.适配器模式待续
Spring定义了一个适配接口使得每一种Controller有一种对应的适配器实现类让适配器代替 controller执行相应的方法。这样在扩展Controller时只需要增加一个适配器类就完成了SpringMVC 的扩展了。 策略模式
Spring框架的资源访问Resource接口。该接口提供了更强的资源访问能力Spring 框架本身大量使用了 Resource 接口来访问底层资源。
装饰器模式
动态地给一个对象添加一些额外的职责。就增加功能来说Decorator模式相比生成子类更为灵活。