当前位置:首页>正文

spring注入方法变量 spring依赖注入有几种方式

2023-04-11 14:04:08 互联网 未知

spring依赖注入有几种方式

这是最简单的注入方式,假设有一个SpringAction,类中需要实例化一个SpringDao对象,那么就可以定义一个private的SpringDao成员变量,然后创建SpringDao的set方法(这是ioc的注入入口):
Java代码
package com.bless.springdemo.action
public class SpringAction {
//注入对象springDao
private SpringDao springDao
//一定要写被注入对象的set方法
public void setSpringDao(SpringDao springDao) {
this.springDao = springDao
}

spring的ioc注入方式有几种?

一、Set注入
二、构造器注入
三、静态工厂的方法注入

内容拓展:
一、Set注入
1、这是最简单的注入方式,假设有一个SpringAction,类中需要实例化一个SpringDao对象,那么就可以定义一个private的SpringDao成员变量,然后创建SpringDao的set方法(这是ioc的注入入口)。
2、随后编写spring的xml文件,中的name属性是class属性的一个别名,class属性指类的全名,因为在SpringAction中有一个公共属性Springdao,所以要在标签中创建一个标签指定SpringDao。标签中的name就是SpringAction类中的SpringDao属性名,ref指下面,这样其实是spring将SpringDaoImpl对象实例化并且调用SpringAction的setSpringDao方法将SpringDao注入。
二、构造器注入
1、这种方式的注入是指带有参数的构造函数注入,看下面的例子,我创建了两个成员变量SpringDao和User,但是并未设置对象的set方法,所以就不能支持第一种注入方式,这里的注入方式是在SpringAction的构造函数中注入,也就是说在创建SpringAction对象时要将SpringDao和User两个参数值传进来。
2、在XML文件中同样不用的形式,而是使用标签,ref属性同样指向其它标签的name属性。
三、静态工厂的方法注入
1、静态工厂顾名思义,就是通过调用静态工厂的方法来获取自己需要的对象,为了让spring管理所有对象,我们不能直接通过"工程类.静态方法()"来获取对象,而是依然通过spring注入的形式获取。
2、同样看关键类,这里我需要注入一个FactoryDao对象,这里看起来跟第一种注入一模一样,但是看随后的xml会发现有很大差别。

Spring中通过注解的方式,我要怎么使用这个成员变量

因为 这个类 是由spring管理的,这样赋值的话spring在生成Bean的时候是不知道怎么给这个属性赋值的。

应该在配置文件中配置好SessionFactory,然后直接@Autowired SessionFactory,而不是使用HiberanteUtil。
这样更方便。

Java 求spring用@Autowired进行方法参数注入例子。

public class TestController {

    private final TestService1 test1
    private final TestService2 test2
    private final TestService3 test3

    @Autowired
    public TestController(TestService1 test1, TestService2 test2, TestService3 test3) {
        this.test1 = test1
        this.test2 = test2
        this.test3 = test3
    }
}这是构造方法的使用方式

相关文章