• 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 : 你好
    

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

  • 相关阅读:
    文件系统恢复!
    磁盘坏道故障!
    磁盘空间耗尽故障!
    卡方——实例(含源码 python)
    TFIDF代码实现
    最标准化步骤(大数据项目首选 Java):提取特定字段地域内容、转化为标准地域(含网络接口、demo、源码、地域数据(csv格式)) 调整指定字段,即可运行获得正确值
    运用DBN 自定义图片输入源码(python3 可直接运行,亲测可用)
    读取tfrecord 代码——可用任意照片均可2
    制作tfrecord 代码——可用任意照片均可
    MYSQL 合并多行数据(指定字段,合并主要重复,个别字段层次不齐现象)
  • 原文地址:https://www.cnblogs.com/youcoding/p/12790596.html
Copyright © 2020-2023  润新知