• Spring 基于 Java 的配置


    前面已经学习如何使用 XML 配置文件来配置 Spring bean。

    基于 Java 的配置可以达到基于XML配置的相同效果。

    基于 Java 的配置选项,可以使你在不用配置 XML 的情况下编写大多数的 Spring

    @Configuration 和 @Bean 注解

    带有 @Configuration 的注解类表示这个类可以使用 Spring IoC 容器作为 bean 定义的来源。

    @Bean 注解告诉 Spring,一个带有 @Bean 的注解方法将返回一个对象,该对象应该被注册为在 Spring 应用程序上下文中的 bean。

    最简单可行的 @Configuration 类如下所示:

    package hello;
    import org.springframework.context.annotation.*;
    @Configuration
    public class HelloWorldConfig {
       @Bean 
       public HelloWorld helloWorld(){
          return new HelloWorld();
       }
    }
    

    上面的代码将等同于下面的 XML 配置:

    <beans>
       <bean id="helloWorld" class="hello.HelloWorld" />
    </beans>
    

    在这里,带有 @Bean 注解的方法名称作为 bean 的 ID,它创建并返回实际的 bean。

    你的配置类可以声明多个 @Bean。

    一旦定义了配置类,你就可以使用 AnnotationConfigApplicationContext 来加载并把他们提供给 Spring 容器,如下所示:

    public static void main(String[] args) {
       ApplicationContext ctx = 
       new AnnotationConfigApplicationContext(HelloWorldConfig.class); 
       HelloWorld helloWorld = ctx.getBean(HelloWorld.class);
       helloWorld.setMessage("Hello World!");
       helloWorld.getMessage();
    }
    

    一个例子

    • 新建Spring项目

    • 创建 Java 类 HelloWorldConfig、HelloWorld 和 MainApp

    这里是 HelloWorldConfig.java 文件的内容:

    package hello;
    import org.springframework.context.annotation.*;
    
    @Configuration
    public class HelloWorldConfig {
        @Bean
        public HelloWorld helloWorld(){
            return new HelloWorld();
        }
    }
    

    这里是 HelloWorld.java 文件的内容:

    package hello;
    
    public class HelloWorld {
        private String message;
        public void setMessage(String message){
            this.message = message;
        }
        public String getMessage(){
            System.out.println("the  Message : " + message);
            return message;
        }
    }
    

    下面是 MainApp.java 文件的内容:

    package hello;
    //import org.springframework.context.support.AbstractApplicationContext;
    import org.springframework.context.ApplicationContext;
    //import org.springframework.context.support.ClassPathXmlApplicationContext;
    import org.springframework.context.annotation.*;
    
    public class MainApp {
        public static void main(String[] args) {
            ApplicationContext context =
                    new AnnotationConfigApplicationContext(HelloWorldConfig.class);
            HelloWorld obj = context.getBean(HelloWorld.class);
            obj.setMessage("你好");
            obj.getMessage();
        }
    }
    

    运行结果

    the  Message : 你好
    

    每天学习一点点,每天进步一点点。

  • 相关阅读:
    Linux网络编程头文件汇总
    CentOS7.6 源码安装 libxml2-2.8.0
    CentOS7.6 源码安装 glib-2.30.3
    CentOS7.6 源码安装 libevent-2.1.8-stable
    CentOS7.6 源码安装 zeromq-4.2.5
    CentOS7.6 源码安装 go1.13.12
    CentOS7.6 源码安装 openssl-1.1.1c
    CentOS7.6 源码安装 Python-3.7.4
    Go学习笔记:Linux下安装Go语言
    Go学习笔记:初识Go语言
  • 原文地址:https://www.cnblogs.com/youcoding/p/12790596.html
Copyright © 2020-2023  润新知