博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
spring IOC装配Bean(注解方式)
阅读量:5135 次
发布时间:2019-06-13

本文共 2674 字,大约阅读时间需要 8 分钟。

1 Spring的注解装配Bean

(1) Spring2.5 引入使用注解去定义Bean

  • @Component 描述Spring框架中Bean

(2) Spring的框架中提供了与@Component注解等效的三个注解:

  • @Repository 用于对DAO实现类进行标注
  • @Service 用于对Service实现类进行标注
  • @Controller 用于对Controller实现类进行标注
    ***** 三个注解为了后续版本进行增强的.,这三个注解的作用也就是说可以更好的为mvc层每一层做个说明。
    注意:配置文件中一定要加xld的引用,同时要加一个标签
    扫描某个包下面的类让他可以使用注解方式
@Component("helloService")public class HelloService {    public HelloService() {        System.out.println("start");    }    public void sayHello () {        System.out.println("hello");    }}

2 Bean的属性注入:

(1) 普通属性;

@Value(value="itcast")

private String info;

(2) 对象属性:

  • @Autowired:自动装配默认使用类型注入.
  • @Autowired
    @Qualifier("userDao") --- 按名称进行注入.
    (上述两种方式第一种只要你注入的对象的名字和你属性的名字是一致的就可以不用Quealifier的注解了,注意这里面的名字一直是属性和注入对象中setXXX的set之后的名字一直)这句话是个思路,说的不正确。
    意思是属性如果是对象那么如果不用Qualifier,那么你的属性名应该和对象的bean的id或者name是一样的,如果不一样那么需要加上Qualifier。
  • @Autowired
    @Qualifier("userDao")
    private UserDao userDao;
    等价于
    @Resource(name="userDao")
    private UserDao userDao;
@Component("helloService")public class HelloService {    @Value(value = "123")    private String info;//    @Autowired(required = true)//    @Qualifier("userDao")    @Resource(name = "userDao")    private UserDao u12serDao;    public HelloService() {        System.out.println("start");    }    public void sayHello () {        System.out.println("hello" + u12serDao.getName());    }}

3 Bean其他的属性的配置:

(1) 配置Bean初始化方法和销毁方法:

init-method 和 destroy-method.

  • @PostConstruct 初始化
  • @PreDestroy 销毁
@PostConstructpublic void setUp() {    System.out.println("初始化");}@PreDestroypublic void teardown() {    System.out.println("销毁");}

(2) 配置Bean的作用范围:

  • @Scope
    只需要在类上加该标签,默认是单例方式

测试方式同样是采用老办法

public class HelloServiceTest {    @Test    public void demo1 () {        ClassPathXmlApplicationContext classPathXmlApplicationContext =                new ClassPathXmlApplicationContext("applicationContext.xml");        HelloService helloService = (HelloService) classPathXmlApplicationContext.getBean("helloService");        helloService.sayHello();        classPathXmlApplicationContext.close();    }}

4 Spring3.0提供使用Java类定义Bean信息的方法

这种方式是通过java编程方式来配置,比如设置bean和属性,但是该方法一般不用。

@Configurationpublic class BeanConfig { @Bean(name="car")public Car showCar(){    Car car = new Car();    car.setName("长安");    car.setPrice(40000d);    return car;}@Bean(name="product")public Product initProduct(){    Product product = new Product();    product.setName("空调");    product.setPrice(3000d);    return product;}}

5 实际开发中使用XML还是注解?

XML:

  • bean管理

    注解;

  • 注入属性的时候比较方便.

两种方式结合;一般使用XML注册Bean,使用注解进行属性的注入.

因为如果修改代码的话只需要在配置文件中更改使用的bean就可以了,而属性的注入一般来说是在程序中要指定好的

s@Autowired@Qualifier("orderDao")private OrderDao orderDao;

转载于:https://www.cnblogs.com/oneNightStand/p/5983928.html

你可能感兴趣的文章
非常棒的Visual Studo调试插件:OzCode 2.0 下载地址
查看>>
判断字符串在字符串中
查看>>
hdu4374One hundred layer (DP+单调队列)
查看>>
类间关系总结
查看>>
properties配置文件读写,追加
查看>>
Linux环境下MySql安装和常见问题的解决
查看>>
lrzsz——一款好用的文件互传工具
查看>>
这20件事千万不要对自己做!
查看>>
Linux环境下Redis安装和常见问题的解决
查看>>
HashPump用法
查看>>
cuda基础
查看>>
Vue安装准备工作
查看>>
.NET 母版页 讲解
查看>>
oracle 创建暂时表
查看>>
201421410014蒋佳奇
查看>>
Xcode5和ObjC新特性
查看>>
jvm slot复用
查看>>
LibSVM for Python 使用
查看>>
Centos 7.0 安装Mono 3.4 和 Jexus 5.6
查看>>
Windows 7 上安装Visual Studio 2015 失败解决方案
查看>>