java实现ioc的参数传递_Spring-02 Java配置实现IOC

Java配置

Spring4推荐使用java配置实现IOC

Spring boot也推荐采用java配置实现IOC

在实际项目中,一般采用注解配置业务bean,全局配置使用Java配置。

Java配置使用的注解

@Configuration:声明当前类为配置类,配置类等效于spring配置xml文件。

@Bean:声明在方法上,方法返回值为Bean。

示例代码

特点:dao和service层不再使用注解

dao的代码

package com.etc.dao;

import org.springframework.stereotype.Repository;

public class EntityDao {

public String getData(){

return "get data from database";

}

}

service的代码

package com.etc.service;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.stereotype.Service;

import com.etc.dao.EntityDao;

public class EntityService {

private EntityDao entityDao;

public String getData(){

return entityDao.getData();

}

}

Java配置类的代码

package com.etc.config;

import org.springframework.context.annotation.Bean;

import org.springframework.context.annotation.Configuration;

import com.etc.dao.EntityDao;

import com.etc.service.EntityService;

/** 声明当前类是一个配置类 ,在该类中定义bean*/

@Configuration

public class JavaConfig {

/**获取dao的bean*/

@Bean

public EntityDao entityDao(){

return new EntityDao();

}

/**获取service的bean*/

// @Bean

// public EntityService entityService(){

// EntityService entityService=new EntityService();

// entityService.setEntityDao(entityDao());

// return entityService;

// }

/**获取serveice的bean时,通过方法参数注入bean*/

@Bean

public EntityService entityService(EntityDao entityDao){

EntityService entityService=new EntityService();

entityService.setEntityDao(entityDao);

return entityService;

}

}

测试类代码

package com.etc.test;

import org.junit.Test;

import org.springframework.context.annotation.AnnotationConfigApplicationContext;

import com.etc.config.DiConfig;

import com.etc.config.JavaConfig;

import com.etc.service.EntityService;

public class TestClass {

/**测试使用注解实现IOC*/

public void test1() {

AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(

DiConfig.class);

EntityService es = context.getBean(EntityService.class);

System.out.println(es.getData());

context.close();

}

/**测试使用Java配置实现IOC*/

@Test

public void test2(){

AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(

JavaConfig.class);

EntityService es = context.getBean(EntityService.class);

System.out.println(es.getData());

}

}

测试结果

get data from database

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值