实现组件之间的解耦,提高程序的灵活性。
Spring提供了一个容器,该容器可以管理bean组件,此外容器还提供了IOC和AOP特性
DI 依赖注入
在spring框架中,两个组件对象之间具有依赖关系(使用和被使用),依赖注入技术就是将被使用者给使用者传进去 A setter方式注入
在使用者中,定义接口类型的变量和setter方法
在spring容器中,添加 在使用者中,定义“接口类型“的变量和带参数的构造方法 在spring 容器配置中,添加 IOC 反向控制,控制转移 在springzhong 了利用DI技术,实现了IOC机制,将两个组件解耦 控制圈:可以指定调用关系,可以创建对象,可以管理和释放对象。 一般编程,使用者具有控制权,可以指定调用哪个组件,负责创建对象这些工作,但是基于spring框架之后,使用者控制权转移到了spring容器,有spring容器负责这些工作。 采用IOC之后,如果底层组件(DAO)发生日环,只要修改Spring容器的配置,不需要修改上层组件(Action),将组件进行了解耦,增强了程序结构的灵活性。 各种类型值注入方法 1 基本类型注入 System.out.pringln(------tushu -----) Set System.out.println(key+””+books.get(key)); } Public void setUserDao(UserDAo userDAO){ This userDAO= userDAO; } Setter注入方式 Bean对象注入 集合类型注入 集合类型值得注入方式 List,Set ,Map,Propertues类型注入格式 组件自动扫描 从spring2.5开始支持,因为jdk5.0,从5.0开始有了注解技术。利用该技术,可以将指定package下的组件,自动扫描到spring容器中,避免在xml中编写大量 如果发现包中的类,类前面有以下注解,将纳入spring容器,id名默认采用类名, (首字母小写) @Controller 扫描控制层组件的注解标记,例如Action @Service 扫描业务层组件的注解标记,例如Service @Repository 扫苗数据访问层组件的注解标记,例如DAO @Component 其他组件 如果需要自定义id名,可以采用@Controller(“id自定义名“) 属性注入注解 在变量定义前,使用@Resource注解标记,spring默认会采用类型匹配原则将符合的bean对象注入进来。如果按指定id名注入bean对象,可以使用@Resource(name=“bean对象的id名“) 因篇幅问题不能全部显示,请点此查看更多更全内容