VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > 编程开发 > Java教程 >
  • 【Java高级】注解篇 - @Configureation

前言
  @Configuration 用于定义配置类,可替换XML配置文件,被注解的类内部包含一个或多个@Bean注解方法。可以被AnnotationConfigApplicationContext或者AnnotationConfigWebApplicationContext 进行扫描。用于构建bean定义以及初始化Spring容器。

  它是在spring3.0版本之后出现的。此注解是spring支持注解驱动开发的一个标志。表明当前类是spring的一个配置类,作用是替代spring的applicationContext.xml。但其本质就是@Component注解,被此注解修饰的类,也会被存入spring的IOC容器。
  属性:
  value:用于存入spring的ioc容器中Bean的id
  使用场景:
  在注解驱动开发时,用于缩写配置的类,通常可以使用此注解。一般情况下,我们的配置也会分为主次配置,@Configureation一般出现在主配置类上。值得注意的是,如果我们在注解驱动开发时,构建ioc容器使用的是传入字节码的构造函数,此注解可以省略,但是如果传入的是一个包,此注解则不能省略。

  实例

   @Configuration 加载Spring方法

  Car.java

复制代码
public class Car {
    private String name;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

}
复制代码

  定义Config类

复制代码
@Configuration
public class Config {
    public Config() {
        System.out.println("TestConfig容器初始化...");
    }

    @Bean(name = "getMyCar")
    public Car getCar() {
        Car c = new Car();
        c.setName("dankun");
        return c;
    }
}
复制代码

  实例化

复制代码
public void testConfig() {
        ApplicationContext context = new AnnotationConfigApplicationContext(Config.class);
        Car car = (Car)context.getBean("car");
        System.out.println(car.getName());
    }
// 输出
// TestConfig容器初始化...
// dankun
复制代码

  @Configuration + @Component

  @Configuration也附带了@Component的功能。所以理论上也可以使用@Autowared功能。上述代码可以改成下面形式
  Car.java

复制代码
@Component
public class Car {
    @Value("dankun")
    private String name;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

}
复制代码

  Config.java

复制代码
@Configuration
@ComponentScan("com.wuyue.annotation")
public class Config {
    public Config() {
        System.out.println("TestConfig容器初始化...");
    }
}
复制代码

  测试主入口

复制代码
public class TestConfig {
    @Test
    public void testConfig() {
        ApplicationContext context = new AnnotationConfigApplicationContext(Config.class);
        Car car = (Car)context.getBean("car");
        System.out.println(car.getName());
    }
}
// 输出
// TestConfig容器初始化...
// dankun
复制代码

  总结

  • @Configuation等价于<Beans></Beans>
  • @Bean 等价于<Bean></Bean>
  • @ComponentScan等价于<context:component-scan base-package="com.dxz.demo"/>
  • @Component 等价于<Bean></Bean>

分享链接:

工作之余,开了一个淘宝小店,分别销售日常必备生活用品,期待您的光临!点击下图,跳转店铺首页!


出处:https://www.cnblogs.com/xjf125/p/15154637.html


相关教程