Spring中JavaConfig特性

原创 2015年07月07日 14:18:48

从Spring3开始,加入了JavaConfig特性,JavaConfig特性允许开发者不必在Spring的xml配置文件中定义bean,可以在Java Class中通过注释配置bean,如果你讨厌XML,那么这种特性肯定是让你感到愉悦的。
当然,你仍然可以用经典的XML方法定义bean,JavaConfig只是另一个替代方案。
1) 编辑pom.xml引入依赖包CGLIB
在建立一个工程后,编辑pom.xml文件要想使用JavaConfig特性,必须引入CGLIB包,引入后,才可以在Class配置bean(Class前加注释@Configuration表示是一个Spring配置类)

 <!-- JavaConfig need cglib -->
    <dependency>
        <groupId>cglib</groupId>
        <artifactId>cglib</artifactId>
        <version>2.2.2</version>
    </dependency>

2)编写几个Java Bean如下:

package com.spring.hello;
public interface IAnimal {
     public void makeSound();
}

package com.spring.hello;
public class Dog implements IAnimal{
    public void makeSound(){
        System.out.println("汪!汪!汪!");
    }
}

package com.spring.hello;
public class Cat implements IAnimal{
    public void makeSound(){
        System.out.println("喵!喵!喵!");
    }
}

3)用JavaConfig特性配置Spring

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://www.springframework.org/schema/beans
         http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
         <bean id="cat" class="com.spring.hello.Cat"/>
         <bean id="dog" class="com.spring.hello.Dog"/>
</beans>

然而在JavaConfig方法,则通过使用注释@Configuration 告诉Spring,这个Class是Spring的核心配置文件,类似于XML文件中的beans,并且通过使用注释@Bean定义bean
我们在 com.spring.hello包内建立一个类,类名为AppConfig

package com.spring.hello;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class AppConfig {
    @Bean(name="dog")
    public IAnimal getDog(){
        return new Dog();
    }
    @Bean(name="cat")
    public IAnimal getCat(){
        return new Cat();
    }
}

4)接下来使用App.java来测试

package com.spring.hello;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

import com.spring.output.OutputHelper;
public class App {
    private static ApplicationContext context;
    public static void main(String[] args)
    {
        context = new AnnotationConfigApplicationContext(AppConfig.class);
        IAnimal obj = (IAnimal) context.getBean("dog");
        obj.makeSound();
        IAnimal obj2 = (IAnimal) context.getBean("cat");
        obj2.makeSound();
    }
}

输出结果如下:

这里写图片描述

版权声明:本文为博主原创文章,转载请注明本博客地址!http://blog.oldriver.top/ 老司机技术手册

相关文章推荐

Spring JavaConfig指南

  • 2007年08月23日 21:09
  • 432KB
  • 下载

Spring JavaConfig指南

  • 2007年08月23日 18:25
  • 432KB
  • 下载

Spring javaConfig编程式 配置properties属性@Value注入

参考原文:http://docs.spring.io/spring/docs/5.0.0.M4/spring-framework-reference/htmlsingle/#beans-propert...
  • lsgqjh
  • lsgqjh
  • 2017年02月10日 19:34
  • 3311

spring_javaConfig

  • 2016年08月29日 09:14
  • 61KB
  • 下载

Spring 3 JavaConfig example

Since Spring 3, JavaConfig features are included in core Spring module, it allow developer to move b...

Spring Bean之JavaConfig自动化装配bean

一、简介: Spring能够进行自动化的装配,它使用两种方式来进行自动化装配:   1、组件扫描:   Spring会自动发现应用上下文中所创建的bean   2、自动装配:   Spring会自动...

理解Spring-javaconfig

JavaConfig原理 servlet3.0标准提供了ServletContainerInitializer接口和HandlesTypes注解,在Web容器启动时完成一些初始化操作,功能同Servl...

spring mvc javaConfig版本搭建常见问题

今天在spring mvc javaConfig版本框架搭建上耗了一天,终于给搭建出来了,下面是搭建过程中遇到的一些问题,记录下来方便以后复习,也为程序员兄弟们提供参考: javaConfig s...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Spring中JavaConfig特性
举报原因:
原因补充:

(最多只允许输入30个字)