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

  

Spring-02 Java配置实现IOC的更多相关文章

  1. SpringBoot学习(二)-->Spring的Java配置方式

    二.Spring的Java配置方式 Java配置是Spring4.x推荐的配置方式,可以完全替代xml配置. 1.@Configuration 和 @Bean Spring的Java配置方式是通过 @ ...

  2. Spring 的java 配置方式

    Java配置是Spring4.x推荐的配置方式,可以完全替代xml配置. 1.1@Configuration 和 @Bean Spring的Java配置方式是通过 @Configuration 和 @ ...

  3. Spring的Java配置方式—@Configuration和@Bean实现Java配置

    Java配置是Spring4.x推荐的配置方式,可以完全替代xml配置. 1.@Configuration 和 @BeanSpring的Java配置方式是通过 @Configuration 和 @Be ...

  4. Spring的Java配置方式

    Java配置是Spring4.x推荐的配置方式,可以完全替代xml配置. 1     @Configuration 和 @Bean Spring的Java配置方式是通过 @Configuration ...

  5. SPRING SECURITY JAVA配置:Web Security

    在前一篇,我已经介绍了Spring Security Java配置,也概括的介绍了一下这个项目方方面面.在这篇文章中,我们来看一看一个简单的基于web security配置的例子.之后我们再来作更多的 ...

  6. spring的Java配置入门(Spring Boot学习笔记之一)

    spring的Java配置 1.创建maven项目 使用idea创建maven项目,这里顺便提一下,idea真的比eclipse好用,早点熟悉吧.然后就是maven是java项目管理最主流的工具,自己 ...

  7. SpringBoot学习(二)——Spring的Java配置方式

    Java配置是Spring4.x推荐的配置方式,可以完全替代xml配置. 一.@Configuration 和 @Bean Spring的Java配置方式是通过@Configuration和@Bean ...

  8. SpringBoot学习(三)-->Spring的Java配置方式之读取外部的资源配置文件并配置数据库连接池

    三.读取外部的资源配置文件并配置数据库连接池 1.读取外部的资源配置文件 通过@PropertySource可以指定读取的配置文件,通过@Value注解获取值,具体用法: @Configuration ...

  9. spring-security-4 (5)spring security Java配置实现自定义表单认证与授权

    前面三篇讲解了spring security的搭建以及简单的表单认证与授权原理.本篇将实现我们自定义的表单登录与认证.  本篇不会再讲项目的搭建过程,因为跟第二节的搭建如出一辙.本篇也不会将项目中所有 ...

随机推荐

  1. ASP.NET Core MVC 2.x 全面教程_ASP.NET Core MVC 20. Model Binding

    模型绑定 这是个最简单的绑定 先从表单找.再从路由的值上找,最后去QueryString上找 通过反射获取这个类型的属性进行填充.反射完有几个属性,就开始去找着几个属性并绑定值 复杂类型 最后又加了一 ...

  2. Swift3.0 字符串(string)

    string常用的一些操作方式 //字符串 //1.初始化字符串 //1.1通过字面量赋值的方式初始化字符串 let tempStrig = "this is temp string&quo ...

  3. POJ2576【背包】

    题意: 每个人必须在一个团队或其他; 人对两支球队的数量不得超过1不同; 人们对各队的总重量应尽可能接近相等越好. 思路: 那么我求一个能接近最接近总和一半的值. 每个人的值就是物品,每个物品有且只有 ...

  4. 五个demo案例带你学习PHP反序列化漏洞

    一直想研究下php反序列化漏洞,花了几天时间做了个简单的了解..写篇文章记录下. 直白点就是围绕着serialize和unserialize两个函数. 一个用于序列化,一个用于反序列化. 我们通常把字 ...

  5. js和jquery给iframe src赋值的3种方法

    js和jquery给iframe src赋值的3种方法   网页使用iframe嵌入网页时,有时候需要动态处理src的值,而不是写死的,所以我们需要知道如何给iframe src赋值,通常是使用js或 ...

  6. the little schemer 笔记(10)

    第十章 What Is  the Value of All of This? entry条目 是由list表组成的 pair 对,pair 对的第一个list表是集合 set.另外,两个list表的长 ...

  7. Party Games UVA - 1610

    题目 #include<iostream> #include<string> #include<algorithm> using namespace std; // ...

  8. Harris角点检测原理及实现

    一.原理 二.实现 close all; clear all; I=imread('test.tif'); [posX,posY]=harris(I); figure;imshow(I); hold ...

  9. archive log full ora-00257

    ############# sample 0 asmcmd show free 37G in archive_log ASMCMD> lsdgState Type Rebal Unbal Sec ...

  10. E. Anton and Tree 数组开大点

    http://codeforces.com/contest/734/problem/E 看了题解,缩点 + 树的直径. 然而一直wa14. 注意到, 缩点后重建图,在5的时候,5和6建了一条边,然后6 ...