- 浏览: 97680 次
- 性别:
文章分类
最新评论
-
chinrui:
iamaj2eeprogrammer 写道顶一个 。。。。。。 ...
日志规范 -
iamaj2eeprogrammer:
顶一个 。。。。。。。。。。
日志规范 -
chinrui:
如果Eclipse安装过Android的开发插件,可能会有一定 ...
使用Ant编译生成Hadoop的Eclipse插件
Spring Note
Spring Introdution
引入相关的包
- ----spring-context-3.2.1.RELEASE.jar
- ----spring-beans-3.2.1.RELEASE.jar
- ----spring-core-3.2.1.RELEASE.jar
- ----spring-expression-3.2.1.RELEASE.jar
- ----commons-logging-1.1.2.jar
UserDAOImpl类:
package com.edu.hpu.impl; import com.edu.hpu.dao.UserDAO; import com.edu.hpu.model.User; public class UserDAOImpl implements UserDAO { public void save(User user) { System.out.println("user saved!"); } }
UserService类:
package com.edu.hpu.service; import com.edu.hpu.dao.UserDAO; import com.edu.hpu.model.User; public class UserService { private UserDAO userDAO; public void save(User user) { userDAO.save(user); } public UserDAO getUserDAO() { return userDAO; } public void setUserDAO(UserDAO userDAO) { this.userDAO = userDAO; } }
beans.xml配置文件:
<?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.xsd"> <bean id="u" class="com.edu.hpu.impl.UserDAOImpl"></bean> <bean id="userService" class="com.edu.hpu.service.UserService"> <property name="userDAO" ref="u" /> </bean> </beans>
测试类:
package com.edu.hpu.sevice; import org.junit.Test; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; import com.edu.hpu.model.User; import com.edu.hpu.service.UserService; public class TestUser { @Test public void testSave() { ApplicationContext acx = new ClassPathXmlApplicationContext(" beans.xml"); UserService service = (UserService)acx.getBean("userService"); User u = new User(); service.save(u); } }
注入的方式大致有三种,上面是Setter Injection
- ----Setter Injection(重要)
- ----Constructor Injection(不重要)
- ----Interface Injection(可以忘记)
下面以Constructor Injection为例子进行注入:
给UserService类添加Constructor方法:
public UserService(UserDAO userDAO) { super(); this.userDAO = userDAO; }
在beans.xml里面配置Constructor Injection:
<bean id="userService" class="com.edu.hpu.service.UserService"> <constructor-arg> <ref bean="u"/> </constructor-arg> </bean>
配置bean的时候,属性名称id也可以使用name代替,但是name里面不能加入特殊字符
<bean name="u" class="com.edu.hpu.impl.UserDAOImpl"></bean>
简单属性的注入
在UserDAOImpl类里面添加属性daoID , daoStatus,并添加相应的getter,setter 方法
在beans.xml里面进行简单属性的配置:
<bean name="u" class="com.edu.hpu.impl.UserDAOImpl"> <property name="daoID" value="1" /> <property name="daoStatus" value="run" /> </bean>
bean的生存范围
the Spring Framework supports five scopes, three of which are available only if you use a web-aware ApplicationContext.
scope : singleton,prototype,request,session,global session
singleton是默认的,而后面的三种,只有使用web-aware Application时才会起作用
<bean id="userService" class="com.hpu.service.UserService" scope="prototype">
集合注入(Collection Injection)
在UserDAOImpl类里面添加三个集合属性,并设定getter与setter方法:
- private List<String> lists;
- private Set<String> sets;
- private Map<String , String> maps;
在beans.xml里面进行集合注入的配置:
<bean name="u" class="com.edu.hpu.impl.UserDAOImpl"> <property name="lists"> <list> <value>1</value> <value>2</value> </list> </property> <property name="sets" > <set> <value>1</value> <value>2</value> <value>3</value> </set> </property> <property name="maps"> <map> <entry key="1" value="1"></entry> <entry key="2" value="2"></entry> <entry key="3" value="3"></entry> </map> </property> </bean>
自动装配(autowire)
装配方式有四种:no , byName , byType , construtor
<bean id="userService" class="com.hpu.service.UserService" autowire="byName"> </bean> <!-- 找出beans.xml里面与该类里面属性名一样的bean进行装配 --> <bean id="userService" class="com.hpu.service.UserService" autowire="byName"> </bean> <!-- 找出beans.xml里面与该类里面属性的类型一样的bean进行装配 -->
bean的生命周期
在UserService类里面,加入init(),destroy()方法,在beans.xml里面配置如下:
<bean id="userService" class="com.edu.hpu.service.UserService" autowire="byType" init-method="init" destroy-method="destroy"> </bean>
注意:init-method , destroy-method 不要和scope=”prototype”一起使用。
本文所述十分简略,若要知道详细操作可参考spring所提供的官方文档。
发表评论
-
SpringMVC与Mybatis集成开发环境搭建
2014-08-04 11:14 1189SpringMVC与Mybatis集成开发环境搭建 ... -
struts处理AJAX请求
2013-07-06 10:56 927struts处理AJAX请求 1、使用AJAX向stru ... -
struts里面的方法校验
2013-06-02 10:13 843struts里面的方法校验 一、全局方法检验 1、校验 ... -
struts多文件上传
2013-06-02 09:15 870struts多文件上传 1、文件载入页面 & ... -
struts中的文件上传
2013-06-01 20:19 972struts中的文件上传 1、上传页面代码 <b ... -
Spring AOP 简单使用
2013-05-04 17:30 1337Spring AOP 在beans.xml进行配置,声明aop ... -
Spring IoC Annotation 的简单使用
2013-05-04 17:22 1055Spring IOC Annotation 进行Annotat ... -
Spring DBCP 数据库连接池配置
2013-05-04 17:01 3205Spring dbcp 数据库连接池 ... -
Spring IOC(DI)模拟
2013-05-03 19:37 881Spring DI Simulation 解释:IOC Inv ... -
Hibernate 里面的1+N问题
2013-04-28 09:02 868Hibernate之1+N问题 1、 Category类 pa ... -
Hibernate 二级缓存举例(4.2 Final版)
2013-04-28 09:02 1183Hibernate 4.2里面的缓存 1、 hibernate ... -
HQL 简单使用二
2013-04-26 10:05 944HQL的简单使用2 1、 Category类 package ... -
Annotation使用两个foreign key做联合主键
2013-04-26 09:57 1507Annotation使用两个foreign key做联合主键 ... -
hibernate HQL的简单使用一
2013-04-26 08:51 1044Hibernate中的HQL使用 1、 建立相应的关系表 Ca ... -
struts2 学习笔记
2013-04-25 08:07 1352Structs学习笔记 一、建立structs项目的时候需要 ... -
JSP 自定义标签
2013-04-24 22:47 875JSP自定义标签(<mytag:mylove /> ...
相关推荐
**Spring Ioc 实现原理详解** Spring Ioc(Inversion of Control,控制反转)是Spring框架的核心特性之一,它改变了传统应用程序中对象的创建和管理方式。在传统的软件设计中,对象的创建和依赖关系的维护通常由...
- **XML配置**:早期Spring主要通过XML文件定义Bean及其依赖,如`<bean>`标签用于定义一个Bean,`<property>`标签用于设置属性值。 - **注解配置**:随着Java注解的发展,Spring引入了@Component、@Service、@...
2. Java配置:Spring 3.0引入了@Configuration和@Bean注解,允许用Java代码来配置Bean,更直观且易于测试。 3. 注解驱动:通过@Component、@Service、@Repository和@Controller等注解标记Bean,@Autowired自动注入...
7. **资源加载**:Spring容器可以从不同的来源加载Bean定义,如XML文件、Java配置类、@Configuration注解的类,甚至是从类路径、URL等位置动态加载。 8. **事件传播**:Spring容器支持事件监听机制,允许Bean之间...
在Spring框架中,IOC(Inversion of Control,控制反转)是一种设计原则,它将对象的创建和管理职责从应用代码中分离出来,交由框架来处理。这样,开发者可以更专注于业务逻辑,而不是对象的生命周期。AOP(Aspect ...
每个Bean都在配置文件(如XML、Java注解或@Configuration类)中定义,包括它的类型、初始化方法、属性值以及与其他Bean的依赖关系。Spring容器根据这些配置信息创建并管理Bean实例。 4. **Excel导入示例**:假设...
Java 配置类则使用 `@Configuration` 和 `@Bean` 注解来替代 XML 配置。 ### Bean 的生命周期 Spring 容器管理 Bean 的完整生命周期,包括初始化、活跃(使用)和销毁三个阶段。初始化阶段可以执行初始化方法(如 `...
Spring IOC(Inversion of Control,控制反转)是Spring框架的核心特性,它将对象的创建和管理权交由Spring容器处理,使得开发者可以更专注于业务逻辑的编写,而不是对象的生命周期管理。下面,我们将深入探讨Spring...
在“Java进阶之SpringIoC应用共18页.pdf”文档中,可能会涵盖以下几个关键知识点: 1. **Spring容器初始化**:Spring容器的启动和初始化过程,包括如何通过XML配置文件或Java配置类加载bean定义。 2. **Bean的生命...
3. **Spring IoC容器**:理解Spring IoC容器如何加载bean定义,如通过XML配置文件或者使用Java配置类来定义bean及其属性。 4. **依赖注入**:深入学习Spring的依赖注入方式,包括构造器注入、setter方法注入、接口...
### Spring IoC 搭建与配置详解 #### 一、Spring IoC 概述 Spring 是一个分层的 Java SE/EE 轻量级开源框架,它为 Java 应用提供了广泛的解决方案,覆盖了从表现层到业务逻辑层再到持久层。Spring 的核心优势之一...
除了XML配置的方式,Spring还提供了注解驱动和Java配置类的方式来配置IOC容器。使用注解(比如@Component、@Service、@Repository和@Controlle)可以简化配置,使得类的定义和依赖注入更加直观。使用Java配置类,则...
在本文中,我们将深入探讨如何使用Spring的Inversion of Control(IoC)容器来实现一个具体的案例:控制打印机(Printer)类与不同类型的纸张(Paper)类的交互。Spring的IoC允许我们解耦组件,使代码更加灵活且易于...
Spring还提供了`@Configuration`和`@Bean`注解,可以用来创建Java配置类,替代XML配置文件,使得配置更加灵活和类型安全。 此外,Spring的IOC容器支持多种扩展功能,如AOP(面向切面编程)和事务管理,这些都是...
《Spring入门:Spring概述与Spring IoC》是针对初学者的一篇教程,旨在引导开发者进入Spring框架的世界。本文将深入探讨Spring的核心概念,特别是Spring的Inversion of Control(IoC,控制反转)特性,以及如何在...
Spring4 IOC(Inversion of Control,控制反转)是Spring框架的核心特性之一,它极大地简化了Java应用程序的开发。在这个示例源码中,我们可以深入理解并学习如何在实际项目中运用Spring的IOC容器来管理对象的生命...
Spring 框架的核心特性之一是Inversion of Control(IoC),也被称为依赖注入(Dependency Injection,DI)。IoC使得应用程序中的对象不再负责创建和管理它们的依赖对象,而是将这个责任交给了一个外部的容器,即...
Annotation注入是Spring IOC的一种实现方式,它利用Java注解替代XML配置来管理Bean的依赖关系,使得代码更加简洁、可读性更强。 在Spring框架中,我们主要关注以下几个关键的注解: 1. `@Component`:这是一个基础...
在Spring中,IoC可以通过XML配置或注解实现,而注解方式则更受现代开发者的欢迎,因为它提供了更加简洁、直观的编程模型。 注解在Spring中的应用主要分为以下几类: 1. **Component Scan**:`@Component`、`@...
Spring IoC,全称Inversion of Control,即控制反转,是Spring框架的核心特性之一。它是一种设计模式,通过将对象的创建和管理交由容器处理,使得开发人员可以专注于业务逻辑,而不是对象间的依赖关系。在Spring框架...