[卖萌鸡尾酒]spring 总结

何为框架/h2>

维基百科的说法:软件框架通常是指为了实现某个业界标准或完成特定基本任务的软件组件规范,也指为了实现某个软件组件规范时,提供规范所要求之基础功能的软件产品。
框架的功能类似于基础设施,与具体的软件应用无关,但是提供并实现最为基础的软件架构和体系。软件开发者通常依据特定的框架实现更为复杂的商业运用和业务逻辑。这样的软件应用可以在支持同一种框架的软件系统中运行。

简而言之,框架就是制定一套规范或者规则(思想),大家(程序员)在该规范或者规则(思想)下工作。或者说使用别人搭好的舞台来做编剧和表演。
总结:框架是带有约束性语法,并且支撑着整个项目的半成品项目。

IOC(DI)

IOC(反转控制):这是面向对象编程的一种设计原则,可以用来减低代码之间的耦合度
DI(依赖注入):最常见的方式 DI , 通过控制反转,对象在被创建的时候,由一个调控系统内所有对象的外界实体,将所依赖的对象的引用传递(注入)给它。
DL(依赖查找):这是另一种 IOC 的方式。(这里不加以描述)
总结:IOC是一种思想,DI 是一种实现方式。

Q:哪些方面被反转了/strong>
A:对象的获得被反转了。对象交由 spring容器进行管理,避免了对象的获取过程靠自身实现,降低了代码的耦合并且方便了程序的维护与调试。

实现方式如下

  • 1、基于接口:实现特定接口以供外部容器注入所依赖类型的对象。
  • 2、基于 set 方法:实现 set 方法,来让外部容器调用传入所依赖类型的对象的属性并赋值。
  • 3、基于构造函数:实现构造函数,在新建对象的时候传入所依赖的对象。
  • 4、基于Java注解功能:在私有变量上加 “ @Autowired ”等注解,不需要定义上方的实现方式,实现自动装配。(该方案相当于定义了public的set方法,但是因为没有真正的set方法,从而不会为了实现依赖注入导致暴露了不该暴露的接口(因为set方法只想让容器访问来注入而并不希望其他依赖此类的对象访问。

2、基于 set 方法的代码实现
准备工作:一个Person类,编写 get , set 方法
spring 的配置文件 applicationContest.xml 如下

Tips
1)、当 Person 类的属性存在对象时,使用 ref 进行赋值。
2)、集合类型的赋值方式( util 命名空间)

测试(只写一遍,之后的测试都按这样的方式创建 Bean, 因为在实际的开发中,是不需要自己创建的)

3、基于构造函数的代码实现
spring 配置文件如下:
构造函数的方式可以通过 index 、 type 等等方式指定所需要赋值的属性。

4、基于Java注解功能:
1、xml 对组件的扫描

2、注解(类名都用小写了,不规范的)
2-1 Controller

2-2 Service

2-3 Dao
3、测试

———————————-其他————————————————–
BeanFactory;
1、factory:

2、xml

3、测试(略)

Bean 的作用域:

scope=singleton:单例,在xml文件加载时就已经创建好对象,每个对象都一样。
scope=prototype:多例,在 getBean 的时候创建对象,每个对象都不一样。(地址空间不一样)
Bean 的生命周期:
1)创建对象
2)依赖注入
3)初始化 (需在 xml 配置)
4)使用
5)销毁 (需在 xml 配置)

bean 后置处理器 :
1、创建类 实现 BeanPostProcessor

public class AfterHandler implements BeanPostProcessor {    @Override    public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException {Car car = (Car) bean;if(car.getBrand().equals("奥迪"))    car.setPrice(来源:Oreo奥利奥团队
                                                        

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2020年5月22日
下一篇 2020年5月22日

相关推荐