Spring的注入方式:
设值注入:
设值注入就是给该类的属性通过set方法设值。在Spring的配置文件当中,使用<property></property>标签设值。
在<property></property>中,name值对应类中的属性名,且必须一致;ref值则是对应的数据源id,且必须一致。
构造注入:
构造注入就是该该类的属性通过构造方法传参数的方式设值。在Spring配置文件当中使用<constructor-arg></constructor-arg>标签进行设值。
在<constructor-arg></constructor-arg>中,name值对应类中的属性名,且必须一致;ref值则是对应的数据源id,且必须一致。
以打折的实例举例一下:
设置注入:
打折计算的接口:
public interface IDiscounts { public double discount(double price); }
半价实体:
public class HalfPrice implements IDiscounts { @Override public double discount(double price) { return price * 0.5; } }
不打折实体:
public class FullPrice implements IDiscounts { @Override public double discount(double price) { return price; } }
结算实体:
public class Accounts {
private IDiscounts iDiscounts;//打折的接口,必须实现set方法
public double account(double price) {
return iDiscounts.discount(price);
}
}
Spring配置文件:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE beans PUBLIC "-//SPRING/DTD BEAN/EN" "http://www.springframework.org/dtd/spring-beans.dtd"> <beans> <!-- 添加每一个bean --> <!-- id为别号,class为相对应的类 --> <bean id="fullPrice" class="com.usc.geowind.lilin.bean.inflood.FullPrice" /> <bean id="halfPrice" class="com.usc.geowind.lilin.bean.inflood.HalfPrice" /> <bean id="account" class="com.usc.geowind.lilin.bean.inflood.Accounts"> <!-- 设值注入 --> <!-- name是该类对应的属性名,必须一致 ; --> <!-- ref映射:值为该属性参数对应的数据源。比如上面的数据源ID:fullPrice --> <property name="iDiscounts" ref="fullPrice"></property> </bean> </beans>
程序入口:
public static void main(String[] args) { // 读取配置文件 Resource resource = new FileSystemResource("shop.xml"); // 加载配置文件 ,启动IOC容器 BeanFactory factory = new XmlBeanFactory(resource); // 从IOC容器中获取实例 Accounts accounts = factory.getBean(Accounts.class); System.out.println(accounts.account(40.0)); }
构造注入:
结算实体做一下修改:
public class Accounts { private IDiscounts iDiscounts; public Accounts(IDiscounts iDiscounts) { this.iDiscounts = iDiscounts; } public double account(double price) { return iDiscounts.discount(price); } }
Spring配置文件:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE beans PUBLIC "-//SPRING/DTD BEAN/EN" "http://www.springframework.org/dtd/spring-beans.dtd"> <beans> <!-- 添加每一个bean --> <!-- id为别号,class为相对应的类 --> <bean id="fullPrice" class="com.usc.geowind.lilin.bean.inflood.FullPrice" /> <bean id="halfPrice" class="com.usc.geowind.lilin.bean.inflood.HalfPrice" /> <bean id="account" class="com.usc.geowind.lilin.bean.inflood.Accounts"> <!-- 构造注入 --> <!-- 顺序与构造方法参数顺序一致 --> <!-- ref映射:值为该属性参数对应的数据源。比如上面的数据源ID:fullPrice --> <constructor-arg ref="halfPrice"></constructor-arg> </bean> </beans>
相关推荐
1. **Spring框架**:Spring是一个全面的Java企业级应用开发框架,提供依赖注入(Dependency Injection, DI)和面向切面编程(Aspect-Oriented Programming, AOP)等功能。在SSH整合中,Spring主要负责业务逻辑的管理...
### SSH总结之Spring详解 #### 一、Spring框架概述 Spring框架是一个开源的轻量级企业级应用框架,主要由核心容器、数据访问/集成、Web、AOP(面向切面编程)、工具、测试、消息和REST等功能模块组成。Spring的核心...
【SSH架构学习之Spring】 SSH(Struts、Spring、Hibernate)是Java开发中常见的三大框架组合,用于构建企业级Web应用程序。在这个主题中,我们主要关注Spring框架的学习。Spring作为一个全面的企业级应用开发框架,...
SSH(Spring、Struts2和Hibernate)是Java开发中经典的三大框架组合,它们协同工作,构建出高效的企业级Web应用程序。本配置实例将探讨如何在Spring 3.1、Hibernate 4.2和Struts 2.3之间进行集成,以实现数据持久化...
2. **Spring**:Spring框架的核心是依赖注入(Dependency Injection,DI)和面向切面编程(Aspect-Oriented Programming,AOP)。它允许开发者专注于业务逻辑,而不必关心对象如何创建和管理。Spring还提供了数据...
下面我们将详细探讨这三个框架的整合过程以及注解方式的Spring注入。 1. **Struts2**:Struts2是基于MVC设计模式的Web应用框架,用于控制应用程序的流程。在SSH2整合中,Struts2处理HTTP请求,解析请求参数,并转发...
Spring作为核心容器,负责管理对象和依赖注入;SpringMVC是Spring框架的一部分,专门处理Web请求;Hibernate则是一个强大的对象关系映射(ORM)工具,用于简化数据库操作。在现代Java开发中,通常还会引入Maven进行...
在本教程中,我们将深入探讨如何在IntelliJ IDEA(简称IDEA)中配置一个基于Struts2(S),Hibernate(H)和Spring(S)的SSH整合项目。这是一个经典的Java Web开发框架组合,用于构建高效、可维护的Web应用程序。在...
SSH框架是Java开发中常用的三大框架集成,包括Struts2、Spring和Hibernate。这个压缩包提供了搭建SSH框架所需的所有jar包和配置文件,使得开发者能够快速构建基于这三大框架的应用。 Struts2作为MVC(Model-View-...
这个压缩包文件"Springssh"很可能包含了上述整合过程所需的配置文件、实体类、DAO、Action、JSP等资源,可以直接应用于开发项目中,或者作为学习SSH整合的实例。通过深入研究和理解这些文件,开发者可以更好地掌握...
整合 SSH2 和 Spring 2.5.6,意味着在Spring应用中利用SSH的安全特性,如通过SSH进行远程命令执行、文件传输或管理服务器资源。这通常涉及到以下关键知识点: 1. **Spring Framework**: Spring 提供了一个模块化的...
在构建基于IDEA的SSH(Struts、Spring、Hibernate)项目时,Spring框架的配置是整个应用程序的核心部分。本文将详细讲解如何在IntelliJ IDEA(IDEA)中配置Spring,以便于理解并掌握SSH集成开发环境下的Spring配置...
【学习价值】这个项目对于初学者来说,是一个很好的实践平台,能够深入理解SSH框架的协同工作方式,掌握企业级应用开发的基本流程。同时,通过实际操作,可以提升对数据库设计、业务流程建模和系统集成的理解。 ...
SSH是Java开发中常用的三大框架组合,它们各自负责不同的职责:Struts2处理MVC(模型-视图-控制器)架构,Spring提供依赖注入和事务管理,Hibernate则作为ORM(对象关系映射)工具,负责数据库操作。 首先,让我们...
在IT行业中,SSH框架组合是Java Web开发中的经典选择,由Spring、Spring MVC和Hibernate三个主要组件构成。这个"新SSH"案例实践旨在提供一个全面的教程,帮助开发者理解和掌握这三个框架如何协同工作以构建高效、...
这通常意味着我们需要将Spring的核心组件引入到SSH项目中,以便利用Spring提供的服务,如依赖注入、事务管理、数据访问等。 以下是压缩包中包含的文件及其对应的知识点: 1. `org.springframework.beans-3.1.0.M2....
在SSH框架中,这意味着当Struts的Action需要调用Service层的方法时,Spring会自动创建Service实例,并将其注入到Action中,而无需Action自行创建或查找Service。这种模式不仅降低了组件间的耦合,还使得单元测试变得...
1. **依赖注入**:Spring通过XML配置或注解方式实现对象间的依赖关系,降低耦合度。 2. **AOP**:Spring的AOP模块用于处理系统级服务,如日志、事务管理等,使得业务逻辑与这些公共服务分离。 3. **事务管理**:...
5. **编写Action**:Action类不再需要包含业务对象的实例化代码,而是通过构造函数或setter方法接收由Spring注入的对象。这样,Action就变成了一个简单的POJO,只负责接收请求、调用业务逻辑和返回结果。 6. **测试...
SSH,即Spring、Spring MVC和Hibernate的组合,是Java Web开发中的一个经典框架栈,用于构建高效、可维护的企业级应用程序。在这个压缩包文件中,包含的是这些框架所需的jar包,它们是运行和开发SSH应用的基础组件。...