Spring依赖注入
假如你没有一个非常给力的团队,我只能说与其让别人来找你,不如我去找别人或者组建
自己的团队,Just Go!!! ---------程序员的自我激励
这几天项目忙的差不多了,静静的坐下开始静静的磨刀,接受下一轮更大的挑战,虽然Struts2和hibernate在目前的开发阶段已经够用了,但是为了更好的利用技术,实现更高效快速的开发,我就坐下静静的开始学Sping----一个神秘好玩的东西。
Spring是Rod Johnson这个伟大的人发明的一个框架是开源社区鼎鼎有名的大神级人物。
Spring是一个轻量级框架, Java EE的春天,当前主流框架。
目标: 使现有技术更加易用,推进编码最佳实践
内容: 依赖注入容器,AOP实现(声明式事务), DAO/ORM支持,Web集成
Spring框架的核心技术就是依赖注入和控制反转,从横面和纵面来进行解耦。
今天我开始写自己的第一个Spring Demo,这里使用到了依赖注入,不过在丧心病狂贴代码之前我们要搞清楚为什么要使用是依赖注入?
我们知道面向对象的方法是的我们的系统实现变得容易,但是当我们的系统变得复杂面向对象的方法使我们变得很无力,因为我们要使用大量的对象,系统变得臃肿不好维护。
我们就要采用组建化的方法进行系统的开发。
而依赖注入的目的就是强制将组建的构建和使用分开。
现在不多说了,上代码:
首先是User类:
package com.zdx.model; public class User { private String userName; private String passWord; public User() { } public String getUserName() { return userName; } public void setUserName(String userName) { this.userName = userName; } public String getPassWord() { return passWord; } public void setPassWord(String passWord) { this.passWord = passWord; } }
然后是UserDAO类:
package com.zdx.dao; import com.zdx.model.User; public interface UserDAO { public void save(User user); }
其次是UserDAOImpl类:
package com.zdx.dao; import com.zdx.model.User; public class UserDAOImpl implements UserDAO { @Override public void save(User user) { System.out.println("11111111111111111111111111"); } }
然后是UserService类:
package com.zdx.service; import com.zdx.dao.UserDAO; import com.zdx.dao.UserDAOImpl; import com.zdx.model.User; public class UserService { private UserDAO userDAO; public void addUser(User user) { this.userDAO.save(user); } public UserDAO getUserDAO() { return userDAO; } public void setUserDAO(UserDAO userDAO) { this.userDAO = userDAO; } }
然后比较关键的就是beans.xml,Spring容器通过此配置文件创建并管理对象
这里要注明的是DI有两种方式,一种是设值注入,一种是构造注入。
设置注入可以用内部注入和外部注入。
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd"> <bean name="user" class="com.zdx.model.User"></bean> <bean name="userDao" class="com.zdx.dao.UserDAOImpl"></bean> <bean name="userService" class="com.zdx.service.UserService"> <!-- name要和类属性的命名一致 --> <property name="userDAO" ref="userDao"></property> <!-- 下面这种使用匿名对象的方式同样可以达到相同的效果 <property name="userDAO"> <bean class="com.zdx.dao.UserDAOImpl"> </bean> </property> --> </bean> </beans>
然后就是Test类了
package com.zdx.test; import org.junit.Test; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; import com.zdx.model.User; import com.zdx.service.UserService; public class TestSpring { @Test public void testSpring() throws Exception { ApplicationContext ctx = new ClassPathXmlApplicationContext("beans.xml"); UserService service=(UserService) ctx.getBean("userService"); User user=(User) ctx.getBean("user"); service.addUser(user); } }
运行后就会出现输出:
11111111111111111111111111
相关推荐
Spring.NET是一个针对.NET平台的开源框架,它引入了依赖注入(Dependency Injection,简称DI)和控制反转(Inversion of Control,简称IOC)的设计模式,使得软件开发更加灵活、可维护和可测试。在.NET环境中,...
在深入解析Spring技术内幕第2版中,会详细探讨Spring框架的核心架构与设计原理,Spring作为一个轻量级的Java平台,提供了全面的编程和配置模型,是企业级Java应用程序开发中广泛使用的技术之一。 Spring的核心特性...
"软件开发架构平台.rar"这个压缩包文件,显然是一份集成了Spring、SpringBoot和Mybatis等关键框架的学习资源,非常适合对软件开发架构感兴趣的大学生进行深入学习。 首先,让我们来详细探讨Spring框架。Spring是...
- **Spring.NET**:Spring.NET是.NET平台上的Spring框架,它提供了一整套企业级开发所需的工具和框架,包括依赖注入支持。 - **Unity**:Unity是一个由Microsoft开发的轻量级IoC Container,支持多种依赖注入模式,...
- **依赖注入**:依赖注入是Spring框架的核心功能之一,通过构造函数注入、setter方法注入或字段注入等方式,实现了组件之间的解耦。 - **面向切面编程**:Spring支持在运行时动态地添加行为到程序中,如日志记录、...
依赖注入是一种软件设计模式,它的核心思想是将一个类的依赖项通过构造器、setter方法或其他方式注入到该类中,而不是由该类自己创建这些依赖项。Spring框架通过BeanFactory或ApplicationContext接口提供了依赖注入...
Spring框架自2.0版本起,不断优化其依赖注入机制,引入了一系列注解以简化Java应用程序的开发过程。特别是Spring 3.0版本,对依赖注入(DI)进行了深度拓展,引入了基于Annotation的依赖注入实现,极大地提高了代码...
Spring 框架是Java开发领域中广泛应用的开源框架,其设计理念和设计模式对于理解和创建高效、可维护的软件系统至关重要。Spring的核心架构由Core、Context和Beans三个主要组件构成,它们共同构建了Spring的基石,...
Spring框架作为Java领域中最流行的轻量级框架之一,通过其强大的依赖注入(Dependency Injection, DI)特性极大地简化了这种依赖关系的管理。本文将详细介绍如何使用MyEclipse这一集成开发环境(IDE)来查看Spring...
2. **依赖注入(Dependency Injection,DI)**:Spring的核心特性之一,通过容器管理对象的生命周期和对象之间的依赖关系,允许开发者在运行时动态地将依赖注入到对象中,提高了代码的可测试性和可维护性。...
《SPRING技术内幕:深入解析SPRING架构与设计原理》这本书是Java开发领域的经典之作,由资深Java专家撰写,旨在帮助读者从宏观和微观两个层面全面理解Spring框架的架构设计和实现原理。以下是对该书内容的详细解读。...
Spring4D 旨在简化 Delphi 开发过程,通过模块化设计,将应用程序的基础架构、依赖注入、数据访问、测试支持等多个方面进行了统一和标准化。它不仅适用于桌面应用,还可以用于开发移动和Web应用程序,支持多种 ...
在当今的软件开发领域,构建高效、可扩展的Web应用是每个开发者关注的重点。本文将深入探讨一个基于Java技术栈的通用开发平台,该平台的核心技术包括Spring MVC、Spring、Bootstrap以及Hibernate。这四大技术...
Spring 技术应用在Open软件开发平台中扮演着核心角色,构建了一个强大的、灵活的基础架构,使得开发人员能够高效地实现各种功能。Spring框架是一个开源的Java平台,它旨在简化企业级应用程序的开发,通过模块化的...
标题“Spring技术内幕:深入解析Spring架构与设计原理”暗示了本书主要关注的两个方面:Spring框架的技术深度和设计原理。Spring是一个非常流行的开源Java框架,它支持基于Java的大型、企业级应用程序的开发。它广泛...
本文档是关于基于Java技术的软件开发架构的总结,将详细介绍Java技术在软件开发架构中的应用与实践。 Java技术作为目前最主流的编程语言之一,在软件开发领域拥有广泛的应用。Java拥有强大的跨平台特性、丰富的类库...
首先,Spring框架作为Java世界中的全能选手,它不仅提供了依赖注入(DI)和面向切面编程(AOP)等核心特性,还涵盖了诸如数据访问、Web应用、任务调度等多个领域的支持。Spring的DI使得组件之间的耦合度降低,增强了代码...
Spring框架是Java开发中广泛应用的一个开源框架,其核心架构设计主要围绕着控制反转(Inversion of Control, IoC)和依赖注入(Dependency Injection, DI)的概念。这些概念是Spring能够提供松耦合、高可测试性和...
1. **Spring框架**:Spring是Java领域中最常用的依赖注入框架之一,提供了强大的依赖注入功能,支持XML配置文件和注解两种方式。Spring框架中的`@Autowired`注解是最常见的依赖注入方式。 ```java @Component ...