首页 > 编程语言 > 详细

01点睛Spring4.1-依赖注入

时间:2015-05-12 02:12:06      阅读:198      评论:0      收藏:0      [点我收藏+]

1.1 声明bean

  • spring利用@Configuration,@Component,@Service,@Repository,@Controller注解在一个java类上声明是spring容器的bean;
  • 使用@Configuration,@Component,@Service,@Repository,@Controller任意一个在类上效果是等同的,不同的名称是为了更好的标志类的角色和功能,避免代码维护者混淆代码作用;
  • 那我们使用这四个注解的准则是什么呢?
    • @Configuration 声明是一个配置bean
    • @Component 系统组件,没有明确的角色;
    • @Service 在业务逻辑层(service层)使用;
    • @Repository 在数据访问层(dao层)使用;
    • @Controller 在展现层(MVC->Spring MVC)使用;

1.2 注入bean

  • 可以使用@Autowired,@Inject(JSR-330),@Resource(JSR-250)注入用@Component,@Service,@Repository,@Controller(当然包括xml声明的或者用@Bean声明的bean)声明的bean;
  • @Autowired,@Inject,@Resource在一般情况下是通用的;
  • @Autowired,@Inject,@Resource可注解在set方法上或者属性上;我习惯注解在属性上,代码更少层次更清晰;

1.3 示例

1.3.1 新建待注入的java类

package com.wisely.di;

import org.springframework.stereotype.Service;

@Service//写为@Component,@Controller,@Repository效果相同,视具体情况使用
public class Demo1Service {

    public String sayHello(String word ){
        return "Hello "+word;
    }
}


1.3.2 新建被注入的java类

package com.wisely.di;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@Service
public class Demo2Service {
    @Autowired //注入Demo1Service,还可使用JavaEE的@Inject(JSR-330),@Resource(JSR-250)效果相同
    Demo1Service demo1Service;
    public String callDemo1SayHello(String word){
        return demo1Service.sayHello(word);
    }

}

1.3.3 测试

package com.wisely.di;

import org.springframework.context.annotation.AnnotationConfigApplicationContext;


public class Main {

    public static void main(String[] args) {
        //设定此包下的类被注册成spring的bean,包含
        //@Configuration,@Component,@Service,@Repository,@Controller
        AnnotationConfigApplicationContext context =  
                   new AnnotationConfigApplicationContext("com.wisely.di");
        Demo2Service demo2Service = context.getBean(Demo2Service.class);
        System.out.println(demo2Service.callDemo1SayHello("World"));
        context.close();
    }

}

输出结果Hello World

01点睛Spring4.1-依赖注入

原文:http://wiselyman.iteye.com/blog/2210252

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!