`
coolszy
  • 浏览: 1412493 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

Spring学习笔记(8)----属性注入的方式

阅读更多

Spring中属性注入的方式有三种:

1.使用属性setter方法注入

2.使用构造器注入

3.使用注解方式注入

 

使用属性setter方法注入

使用属性setter方法注入就是给属性添加set()方法,在前面都是使用这种方法。

package com.szy.spring.service;

import com.szy.spring.dao.PersonDao;

public class UserServiceImplBySetter implements UserService
{
	private PersonDao personDao;
	
	public void show()
	{
		personDao.show();
	}
	public PersonDao getPersonDao()
	{
		return personDao;
	}
	public void setPersonDao(PersonDao personDao)
	{
		this.personDao = personDao;
	}
}

 

然后在配置文件中如下配置

<bean id="personDao" class="com.szy.spring.dao.PersonDaoBean"/>
	<!-- 使用属性Setter方法注入配置 -->
	<bean id="userService1" class="com.szy.spring.service.UserServiceImplBySetter">
		<property name="personDao" ref="personDao"></property>
	</bean>

 

使用构造器注入

使用构造器注入就是在类中添加含参构造函数

package com.szy.spring.service;

import com.szy.spring.dao.PersonDao;

public class UserServiceImplConstructor implements UserService
{
	private PersonDao personDao;
	private String name;
	
	public UserServiceImplConstructor()
	{
	}

	public UserServiceImplConstructor(PersonDao personDao, String name)
	{
		this.personDao = personDao;
		this.name = name;
	}

	public void show()
	{
		personDao.show();
		System.out.println("name属性:"+name);
	}
}

 

下面就是在配置文件中添加配置信息,给每个参数注入值

<bean id="personDao" class="com.szy.spring.dao.PersonDaoBean"/>
	<!-- 使用构造器参数方法注入配置 -->
	<bean id="userService2" class="com.szy.spring.service.UserServiceImplConstructor">
		<constructor-arg index="0" type="com.szy.spring.dao.PersonDao" ref="personDao"/>
		<constructor-arg index="1" value="Kuka"/>
	</bean>

 注意:constructor-arg index是从0开始的

 

使用注解方式注入

如果使用前面的两种方法,配置文件将会显得很臃肿,因此我们可以使用注解的方式注入,使用注解方式注入有两种方法,第一种使用javax.annotation.Resource中提供的注解方式方法如下:

package com.szy.spring.service;

import javax.annotation.Resource;

import com.szy.spring.dao.PersonDao;

public class UserServiceImplByAnnotation4Resource implements UserService
{
	//@Resource默认是按照名称装配,找不到与名称匹配的bean时按类型装配
	@Resource(name="personDao")private PersonDao personDao;

	public void show()
	{
		personDao.show();
	}
//	下面方法同样可以
//	@Resource
//	public void setPersonDao(PersonDao personDao)
//	{
//		this.personDao = personDao;
//	}
	
}

 

此时配置文件要做相应的改变

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns:context="http://www.springframework.org/schema/context"
	xmlns:tx="http://www.springframework.org/schema/tx"
	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
				http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd
				http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd">
	<context:annotation-config/>
	<bean id="personDao" class="com.szy.spring.dao.PersonDaoBean"/>
	<bean id="userService" class="com.szy.spring.service.UserServiceImplByAnnotation4Autowired">
	</bean>
</beans>

 

 注意添加这句配置信息

<context:annotation-config/>

第二中方式就是使用spring提供的注解方式

org.springframework.beans.factory.annotation.Autowired;

注入使用时需要导入spring目录lib\j2ee\common-annotations.jar这个包

使用方法如下:

package com.szy.spring.service;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;

import com.szy.spring.dao.PersonDao;

public class UserServiceImplByAnnotation4Autowired implements UserService
{
	//@Autowired默认使用类型进行装配,
	@Autowired private PersonDao personDao;
//	如果使用按名称进行装配,则需要如下
//	@Autowired @Qualifier("personDao")private PersonDao personDao;
	public void show()
	{
		personDao.show();
	}
	
}

 

配置文件和上面一样。

 

在使用时建议使用@Resource,因为@Resource不依赖于spring框架。

  • 大小: 50.3 KB
分享到:
评论

相关推荐

    Spring学习笔记(11)----自定义属性编辑器

    在“Spring学习笔记(11)----自定义属性编辑器”这篇博文中,作者深入探讨了如何自定义属性编辑器以满足特定需求。 首先,我们需要了解属性编辑器的工作原理。当IoC容器读取配置文件时,如果发现一个属性值需要...

    Spring学习笔记-cqupt

    在本篇 Spring 学习笔记中,我们将探讨 Spring 的入门、优点、组成以及重要的IOC理论。 1. **Spring 简介** Spring 是一个开源的、免费的 Java 框架,它的目标是减少企业级开发的复杂性。它集成了许多现有的技术,...

    Spring学习笔记(10)----公共属性的注入配置

    NULL 博文链接:https://coolszy.iteye.com/blog/520913

    Spring学习笔记(精华全记录)

    ### Spring学习笔记(精华全记录) #### Spring框架概述 Spring框架源自Rod Johnson的个人项目,最初于2002年末发布。Spring并非一开始就作为一个完整的框架出现,而是从一个项目逐步发展而来。随着项目的成熟,...

    JSF2整合Spring3------JSF学习笔记4

    **JSF2整合Spring3——JSF学习笔记4** 在Java服务器端开发中,JavaServer Faces(JSF)和Spring框架都是重要的技术。JSF是一个用于构建用户界面的MVC(Model-View-Controller)框架,而Spring则是一个全面的企业级...

    Spring学习笔记(6)----编码剖析Spring依赖注入的原理

    本篇学习笔记将深入剖析Spring依赖注入的原理,通过源码分析帮助我们理解这一核心机制。 首先,依赖注入允许我们解耦组件之间的关系,使得各个组件可以独立地进行开发、测试和维护。在Spring中,DI主要通过两种方式...

    spring学习笔记

    ### Spring学习笔记知识点详解 #### 一、Spring框架概述 **Spring** 是一个开源的、分层的企业级应用开发框架,旨在简化Java EE应用程序的开发。它的主要目标是提高开发效率,减少耦合度,并提供一种更为简洁的...

    尚学堂Spring学习笔记

    "尚学堂Spring学习笔记" 本文档记录了尚学堂Spring学习笔记的重要知识点,涵盖了Spring配置文件的设置、普通属性的注入、自定义属性编辑器、公共属性的注入、Spring注解等内容。 一、Spring配置文件的设置 在...

    Spring.NET学习笔记-控制反转

    ### Spring.NET 学习笔记 — 控制反转 #### 一、控制反转(IoC)概念解析 控制反转(Inversion of Control,简称IoC)是一种软件设计思想,它改变了传统对象之间的依赖关系管理方式,从而降低了组件之间的耦合度。在...

    Spring学习笔记&源码

    本资料“Spring学习笔记&源码”是基于网易云课堂黑马程序员的Spring四天精通课程,旨在帮助学习者深入理解和实践Spring框架。 笔记部分可能会涵盖以下内容: 1. **Spring概述**:介绍Spring框架的历史、特点和主要...

    Spring学习笔记(15)----使用Spring的注解方式实现AOP

    在本篇Spring学习笔记中,我们将深入探讨如何利用Spring框架的注解方式来实现面向切面编程(AOP)。AOP是一种编程范式,它允许我们定义横切关注点,如日志、事务管理等,然后将这些关注点模块化并插入到应用程序的多...

    Spring学习笔记之二“属性注入”

    在本篇“Spring学习笔记之二‘属性注入’”中,我们将深入探讨Spring如何实现属性注入,并通过实例展示其工作原理。 1. **属性注入的概念** 属性注入是指Spring容器通过XML配置或者基于注解的方式,将外部资源(如...

    Spring学习笔记(7)----装配各种集合类型的属性

    这篇博客文章《Spring学习笔记(7)----装配各种集合类型的属性》可能是对这一主题的深入探讨。 首先,我们要理解Spring的DI机制,它是Spring的核心特性之一,允许我们将组件的依赖关系在运行时自动注入,而不是硬...

    Spring学习笔记.doc

    ### Spring学习笔记知识点详解 #### 一、Spring框架概述 **1.1 什么是Spring** Spring框架是一个开源的轻量级应用框架,主要用于简化企业级应用程序的开发过程。它的核心特性在于提供了一种灵活的方式来组织和...

    spring学习笔记(最新版)

    ### Spring学习笔记(最新版) #### 一、Spring框架简介 Spring框架是一个广泛使用的轻量级企业级应用框架,它提供了全面的解决方案来构建复杂的Java应用程序。Spring的核心特性包括依赖注入(Dependency Injection,...

    Spring学习笔记(17)----使用Spring注解方式管理事务

    在本篇Spring学习笔记中,我们将探讨如何使用Spring框架的注解方式来管理事务,这是一种在现代Java应用中广泛采用的方法。Spring框架以其强大的依赖注入和面向切面编程能力,为事务管理提供了简洁且高效的解决方案。...

    Spring Boot核心技术-笔记-pdf版.pdf

    **Spring Boot核心技术详解** Spring Boot是由Pivotal团队提供的全新框架,其设计目标是为了简化Spring应用的...希望这份学习笔记能帮助你深入理解和掌握Spring Boot的精髓,祝你在Spring Boot的学习之路上一帆风顺!

    Spring的学习笔记

    以下将详细介绍Spring学习笔记中的主要知识点。 **面向抽象编程** 面向抽象编程是一种设计原则,强调在代码中使用接口或抽象类,而不是具体实现类。这使得系统更具有灵活性,易于扩展和维护。在Spring框架中,我们...

Global site tag (gtag.js) - Google Analytics