`

Spring注入类型

阅读更多

第一中属性注入也就是setter注入(为属性提供相应的set和get方法)

package com.lbx.service.impl;

import com.lbx.dao.UserDao;
import com.lbx.po.User;
import com.lbx.service.UserService;

public class UserServiceImpl implements UserService {
	private UserDao userDao;
	private String name;
	private String age;
	
	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public String getAge() {
		return age;
	}

	public void setAge(String age) {
		this.age = age;
	}
	
	@Override
	public void add(User user) {
		userDao.add(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"
xmlns:p="http://www.springframework.org/schema/p"
xsi:schemaLocation="http://www.springframework.org/schema/beans 
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">

<bean id="userDao" class="com.lbx.dao.impl.UserDaoImpl"></bean>
<!-- <bean id="userDao2" class="com.lbx.dao.impl.UserDaoImpl2"></bean> -->
<bean id="userService" class="com.lbx.service.impl.UserServiceImpl">
	<property name="userDao" ref="userDao"></property> <!--   这是一种Set注入,也就是调用相应的set方法,还有构造方法注入 -->
	<property name="name"><value>libinxuan</value> </property>
	<property name="age"><value>22</value> </property>
	<!--  
		也可以这样写
	<property name="userDao">
		<ref bean="userDao"></ref>
	</property>
	-->
	<!--<constructor-arg>			 这是一种构造方法注入,参数不好处理,可以是参数类型处理和index来处理		
		<ref bean="userDao"></ref>
	</constructor-arg> -->	
	
</bean>

</beans>

 

 

第二种就是构造函数注入(提供相应的构造方法)多个参数可按类型和索引来区分,有时候还得同时用类型和索引来区分

package com.lbx.service.impl;


import com.lbx.dao.UserDao;
import com.lbx.po.User;
import com.lbx.service.UserService;

public class UserServiceImpl implements UserService {
	private UserDao userDao;
	
	public UserServiceImpl(UserDao userDao) {
		super();
		this.userDao = userDao;
	}

	@Override
	public void add(User user) {
		userDao.add(user);
	}
	
	public UserDao getUserDao() {
		return userDao;
	}
	public void setUserDao(UserDao userDao) {
		this.userDao = userDao;
	}

}

 

bean.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"
xmlns:p="http://www.springframework.org/schema/p"
xsi:schemaLocation="http://www.springframework.org/schema/beans 
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">

<bean id="userDao" class="com.lbx.dao.impl.UserDaoImpl"></bean>
<!-- <bean id="userDao2" class="com.lbx.dao.impl.UserDaoImpl2"></bean> -->
<bean id="userService" class="com.lbx.service.impl.UserServiceImpl">
	<!--<property name="userDao" ref="userDao"></property>    这是一种Set注入,也就是调用相应的set方法,还有构造方法注入 -->
	<!--  
		也可以这样写
	<property name="userDao">
		<ref bean="userDao"></ref>
	</property>
	-->
	<constructor-arg>			<!-- 这是一种构造方法注入,参数不好处理,可以是参数类型处理和index来处理 -->			
		<ref bean="userDao"></ref>
	</constructor-arg>
	
</bean>

</beans>

 

 

第三种就是接口注入(一般只用属性注入也是就是使用setter注入)

 

 

 

分享到:
评论

相关推荐

    Spring三种注入方式(三)

    在实际开发中,可以根据需求选择合适的方式,通常推荐使用构造器注入,因为它可以提供更好的类型安全性和明确的构造过程。 总结起来,Spring的依赖注入机制是其核心特性之一,它简化了对象间的依赖关系管理,提高了...

    spring注入原理

    在本篇文章中,我们将深入探讨Spring注入原理,特别是注解方式的实现,帮助你更好地理解和掌握这一技术。 ### 1. 依赖注入(Dependency Injection) 依赖注入是Spring的核心特性,它允许我们解耦组件间的依赖关系...

    spring的注入方式

    自动注入是Spring的一种便捷方式,它能自动匹配类型或名称来注入依赖。Spring会根据类型或bean的名称自动找到合适的依赖。类型注入默认是基于类型匹配的,而名称注入则需要指定`@Qualifier`注解来指定bean的名称。...

    Spring定义bean的三种方式和自动注入

    在上述例子中,`Student`类中的`teacher`字段使用`@Autowired`注解,Spring会自动找到`Teacher`类型的Bean进行注入。 总之,Spring提供了多种方式来定义和管理Bean,从XML到注解再到Java配置,使得开发更加灵活高效...

    spring依赖注入例子

    Spring容器会在运行时自动找到匹配类型的bean并注入。 ```java @Service // 标记为服务组件 public class UserService { @Autowired // Spring会自动寻找合适的UserRepository并注入 private UserRepository ...

    SpringIoc注入

    **二、Spring中的依赖注入类型** 1. **构造器注入**:通过构造函数传递依赖对象,每个构造函数参数代表一个依赖。这种方式确保对象在创建时就具备了所有必需的依赖。 2. **setter注入**:通过setter方法来注入依赖...

    Spring依赖注入检查.

    Spring依赖注入是Spring框架的核心特性之一,它极大地简化了Java应用程序的开发,使得对象之间的依赖关系得以解耦,提高了代码的可测试性和可维护性。本文将深入探讨Spring依赖注入的概念、工作原理以及如何在实际...

    spring依赖注入底层详解

    当容器遇到带有@Autowired注解的字段或方法时,会根据类型或名称找到合适的依赖,并通过反射进行注入。 2. AOP:Spring的AOP框架用于在运行时动态地修改程序的行为,比如在依赖注入时,AOP代理可以在目标对象的方法...

    关于spring boot中几种注入方法的一些个人看法

    Spring Boot 中的几种注入方法 在 Spring Boot 中,注入是一种非常重要的机制,用于将 bean 对象注入到其他 bean 对象中,以便实现松耦合和高内聚的设计目标。下面我们将对 Spring Boot 中的几种注入方法进行详细的...

    Spring_Spring_教程8_注入_复杂类型的注入

    本教程将专注于Spring中的复杂类型注入,包括集合、自定义类以及接口实现的注入。 一、依赖注入的基本概念 依赖注入是Spring的核心特性之一,其基本思想是,一个对象不应该负责查找它的依赖,而应该由外部容器(如...

    第四章 Spring4 注入参数

    Spring4对注入参数的支持更加完善,本章将深入探讨Spring4中的参数注入机制,包括基本类型注入、对象注入、集合类型注入以及如何通过注解实现这些功能。 一、基本类型注入 Spring4允许我们将基本数据类型(如int、...

    知识共享-Spring注入属性值案例(雷惊风).

    ### Spring框架中的属性值注入详解 #### 一、Spring框架简介 Spring框架是一个开源的Java平台,用于构建企业级应用程序。它提供了全面的基础架构支持,包括依赖注入(Dependency Injection, DI)、面向切面编程...

    Spring注解注入属性

    当应用程序中存在多个相同类型的bean时,仅使用`@Autowired`会导致Spring无法确定具体应该注入哪一个bean,从而引发异常。这时,`@Qualifier`注解就派上了用场。通过在`@Autowired`注解附近加上`@Qualifier("bean...

    spring 设值注入

    设值注入不仅限于字符串,还可以注入其他类型的值,如基本类型、集合、其他bean引用等。例如,你可以注入一个列表: ```xml &lt;value&gt;1 &lt;value&gt;2 &lt;value&gt;3 ``` 或者,使用SpEL(Spring Expression ...

    spring 普通属性注入

    在Spring框架中,属性注入是核心特性之一,它允许我们通过依赖注入(Dependency Injection, DI)来管理对象的属性,而不是让对象自行创建或查找它们的依赖。这有助于提高代码的可测试性、可维护性和解耦性。下面将...

    spring依赖注入

    Spring容器在创建对象时,会根据构造器的参数类型自动匹配并注入相应的bean。这种方式确保了对象在创建时就已经具备所有必需的依赖,提高了代码的稳定性。 其次,setter注入是通过在类中声明setter方法,Spring容器...

    spring注解注入示例详解.pdf

    这里,@Qualifier("userDao")告诉Spring要注入的是id为userDao的那个UserDao类型的Bean。 3. @Resource注解 @Resource是Java标准规范JSR-250中的注解,它也可以用于自动装配。与@Autowired不同的是,@Resource默认...

    spring学习:依赖注入的几种方式讨论

    `@Autowired`会自动将类型匹配的`Repository`注入到`repository`字段。 三、基于Java配置的依赖注入 除了XML和注解,Spring还支持纯Java配置。通过创建一个配置类,使用`@Configuration`和`@Bean`注解来声明和定义...

    Spring如何注入Date类型的变量

    在Spring框架中,注入Date类型的变量是一个常见的需求,特别是在处理日期和时间相关的业务逻辑时。这篇博客将探讨如何在Spring中有效地注入Date对象到bean的属性中。首先,我们需要了解Spring依赖注入的基本概念,它...

    SPRING DI注入例子

    - **自动装配**:Spring会尝试根据类型或名称自动找到匹配的bean进行注入,`@Autowired`即表示自动装配。 - **手动装配**:通过XML配置文件或Java配置类来明确指定要注入的bean。 4. **@Qualifier注解** 当存在...

Global site tag (gtag.js) - Google Analytics