Spring教程(一)

Spring教程(一)

JavaEE成功入门,谈谈自己的经验,也试着写写博客,本文大多来自Baeldung。本文不定时更新

(本文没有使用任何基于XML的配置,目前开发基本都靠注解了,Spring Boot基本也能帮我们省去各类配置,只要理解概念即可,项目也可以直接使用
Spring Initializr
生成,关于我对开发环境于习惯的建议于观点,请移步#)

依赖注入

依赖注入是指对一个对象的依赖进行注入的过程。通过依赖注入,使组件低耦合,将对组件的管理转移给框架

控制反转

指对象的控制权被转移给容器或框架。

那么,什么是依赖呢:

public class Foo {
    private Bar bar;
  
    public Foo() {
        bar = new Bar();    
    }
}

此处Bar为Foo的依赖,此处通过构造器实例化依赖,通过依赖注入,代码可以被改写为:

public class Foo {
    private Bar bar;
    @Autowired
    public Foo(Bar bar) {
        this.bar = bar;
    }
}

通过一个setter,用框架注入依赖。

基于构造器的依赖注入

当通过构造器进行依赖注入时,框架以对象所需要的依赖为参数调用构造器。
Spring主要通过类型对依赖进行解析。同时也依赖于属性名与各种消歧义选项。
我们来看下面这一代码段段:

@Configuration
public class AppConfig {
 
    @Bean
    public Item item1() {
        return new ItemImpl1();
    }
 
    @Bean
    public Store store() {
        return new Store(item1());
    }
}

@Configuration注解显示这类是Bean定义的来源,在方法上使用@Bean,从而以方法定义一个bean。定义好bean后,则可以使用在构造器上使用@Autowired注解,实现依赖的注入。

public class Foo {
    private Bar bar;
    @Autowired
    public Foo(Bar bar) {
        this.bar = bar;
    }
}

基于Setter的注入
这种注入方式类似上一种:

public class Foo {
    private Bar bar;
    @Autowired
    public setBar(Bar bar) {
        this.bar = bar;
    }
}

属性注入

public class Foo {
    @Autowired
    private Bar bar; 
}

下一回,我们将详细解释@Autowired的用法.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值