认识Spring

来源:互联网 发布:大数据开发和数据挖掘 编辑:程序博客网 时间:2024/05/01 06:24

spring:一种轻量级的J2EE框架

1.SpringIoc 容器

2.SpringAOP

3.Spring整合Hibernate

4.Spring整合Struts

5.Spring整合Mybatis

6SpringMVC

Spring 就是粘合剂,Spring可以通过Ioc整合各种框架和技术,简化开发


IOC:控制反转(Inversion of Control,英文缩写为IoC)是框架的重要特征,并非面向对象编程的专用术语。它与依赖注入(Dependency Injection,简称DI)和依赖查找(Dependency Lookup)并没有关系

什么控制权反转?

对象创建的控制权反转到程序的外部

打印机:

两个接口:

Ink 墨盒接口                     colorInk      BlackInk

Paper 纸张接口A4 B5

一个类:

Printer 

面向接口编程:也就是设计编码,只关心接口对外提供的方法,不关心接口具体的实现,在具体创建该对象的时候再指定实现类.

DI: 依赖注入Dependency Injection     依赖谁注入谁

依赖注入的实现方法

set注入和构造注入


DI和IoC的关系

ioc通过DI来实现的,一般情况下我们把IOC~~(约等于)DI

 IOC不再new         DI传值



SpringIoC:
1.导入IoC基本包
2.建立applicationContext.xml     new 对象,注入对象
引入dtd 
\spring-framework-4.2.4.RELEASE\docs\spring-framework-reference\html\bean


springIoC容器:把创建对象的控制权转移到Spring中,
Spring就是一个bean工厂(造对象的工厂),代码中减少了直接new的对象的过程,是一种彻底的IoC,减少了硬编码(编译)通常情况下,都应该避免使用硬编码方法,降低了耦合度,减低了维护成本.

核心业务对象都交给spring创建管理

Dao  service   Controller     交给spring    其他的自己写 

SpringIoC容器, SpringBean工厂:(javaBean 对象)

核心业务对象都交由Spring创建管理,核心业务对象都存在springIoC容器中.


SpringDI:

1.set注入:

<property></property>

条件:必须有set方法,而起name=set方法名(把set去掉,一般首字母小写)   不是属性名

注意:

   自定义的引用类型不能使用value注入,使用ref

   基本类型,包括String等,使用value

2.构造注入

1.<bean></bean>默认使用无参构造实例化对象

2.通过有参构造给属性注入值:构造注入

 <constructor-arg></constructor-arg>  参数 构造方法有几个参数就写几个

注意:在一个spring配置文件中不能有重名的id或者name

spring通过工厂方法实例化对象

创建工厂 (静态工厂和实例化工厂)

StaticFactory静态工厂(方法是static)

<bean factory-method="工厂方法名">

实例工厂中的方法都是public 不加static (加上就报错)

实例化工厂(InstanceFactory)实用前需要先创建工厂


配置文件中  :ns:namespace 命名空间 命名空间加多个 每个都是单独的 可以用双引号 

 schemaLocation 就一个 ( 就是写在一个双引号中 属于一个)    (直接加url) p和c无需在schemaLocation添加url ,别的命名空间需要添加url       p是property 的简写   c是construct(构造) 的简写

一个bean对应一个java对象id(就是类型名)         class对应的是 路径 

bean不指定时用无参构造 所以 写构造方法是尽量把无参写出来

一个entry 表示一个键值对

 map的k都是string类型,自定义引用类型 

对数组进行注入还是使用list标签

原创粉丝点击