Spring-Java配置形式讲解

本人花费半年的时间总结的《Java面试指南》已拿腾讯等大厂offer,已开源在github ,欢迎star!

本文GitHub https://github.com/OUYANGSIHAI/JavaInterview 已收录,这是我花了6个月总结的一线大厂Java面试总结,本人已拿大厂offer,欢迎star

原文链接:blog.ouyangsihai.cn >> Spring-Java配置形式讲解

前言:

最初的sprng1.x开始,spring一直使用的是xml配置的形式。而从spring2.x因为jdk5的发布也引入了注解的形式
Java代码类配置形式则是Spring3.x出现的功能。
springboot的配置形式多数使用 是java代码类配置方式,这也是官方推荐的形式。
什么Java代码类的配置呢?在Spring中通过在类上方添加注解@Configuration,就能告知Spring这是一个注解类,而这个类的就相当于一个配置文件

Java代码类配置形式则是Spring3.x出现的功能。

什么Java代码类的配置呢?在Spring中通过在类上方添加注解@Configuration,就能告知Spring这是一个注解类,而这个类的就相当于一个配置文件

Java Configuration形式入门:

在此之前我们来接一下Java配置的基本注解:

Spring的Java配置方式是通过 @Configuration和 @Bean 这两个注解实现的:

1、@Configuration 作用于类上,相当于一个xml配置文件;

2、@Bean 作用于方法上,相当于xml配置中的

快速入门案例:

  • 目录结构

      │-pom.xml
      src
      ├─main
      │  ├─java
      │  │  └─com
      │  │      └─lifeibai
      │  │          ├─conf
      │  │          │      BeanConfig.java ---Java配置文件类
      │  │          │
      │  │          └─pojo
      │  │                  User.java  ---pojo类
      │  │
      │  └─resources
      └─test
          └─java
              └─com
                  └─lifeibai
                      └─test
                              MyTest.java ---简单测试文件
    
  • BeanConfig.java

    package com.lifeibai.conf;
    import com.lifeibai.pojo.User;
    import org.springframework.context.annotation.Bean;
    import org.springframework.context.annotation.Configuration;
    //声明这是一个配置类
    @Configuration
    public class BeanConfig {
      //声明这是一个bean,默认的id是方法名称
      @Bean
      public User user(){
          return new User("小明","男",18);
      }
    }
    
  • User.java

    public class User {
      private String name;
      private String sex;
      private Integer  age;
      public User(String name , String sex , Integer age){
          this.name = name;
          this.sex = sex;
          this.age = age;
      }
      ...
    }
    
  • MyTest.java

    package com.lifeibai.test;
    import com.lifeibai.pojo.User;
    import org.junit.Test;
    import org.springframework.context.annotation.AnnotationConfigApplicationContext;
    public class MyTest {
      @Test
      public void test01(){
          //通过扫描包的方式扫描所有的javaconfig配置类
          AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext("com.lifeibai.conf");
          User user = (User) context.getBean("user");
          System.out.println(user);
      }
    }
    //以上运行结果
    User{name='小明', sex='男', age=18}
    Process finished with exit code 0
    
  • BeanConfig.java

    
    package com.lifeibai.conf;
    import com.lifeibai.pojo.User;
    import org.springframework.context.annotation.Bean;
    import org.springframework.context.annotation.Configuration;
    //声明这是一个配置类
    @Configuration
    public class BeanConfig {
      //声明这是一个bean,默认的id是方法名称
      @Bean
      public User user(){
          return new User("小明","男",18);
      }
    }
    

    MyTest.java

    
    package com.lifeibai.test;
    import com.lifeibai.pojo.User;
    import org.junit.Test;
    import org.springframework.context.annotation.AnnotationConfigApplicationContext;
    public class MyTest {
      @Test
      public void test01(){
          //通过扫描包的方式扫描所有的javaconfig配置类
          AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext("com.lifeibai.conf");
          User user = (User) context.getBean("user");
          System.out.println(user);
      }
    }
    //以上运行结果
    User{name='小明', sex='男', age=18}
    Process finished with exit code 0
    

    文章如有错误,请您一定指出,感谢之至!
    如果你有不同的见解,欢迎留言,或者加我QQ986320270
    图片可能来源于网络,如有侵权请告知。
    最后:关注一下呗

    如果你有不同的见解,欢迎留言,或者加我QQ986320270

    最后:关注一下呗

    长按二维码识别关注

    本人花费半年的时间总结的《Java面试指南》已拿腾讯等大厂offer,已开源在github ,欢迎star!

    本文GitHub https://github.com/OUYANGSIHAI/JavaInterview 已收录,这是我花了6个月总结的一线大厂Java面试总结,本人已拿大厂offer,欢迎star

    原文链接:blog.ouyangsihai.cn >> Spring-Java配置形式讲解


     上一篇
    Spring Cacheb的使用及实现原理 Spring Cacheb的使用及实现原理
    从Spring 3.1版本开始,提供了一种透明的方式来为现有的Spring 应用添加cache,使用起来就像@Transaction一样。在应用层面与后端存储之间,提供了一层抽象,这层抽象目的在于封装各种可插拔的后端存储( Ehcach
    2021-04-05
    下一篇 
    SpringMVC架构与流程 SpringMVC架构与流程
    SpringMVC架构与流程前言: 顾名思义SpringMVC是一个基于MVC设计思想的框架。 什么是mvc?MVC是模型(model)-视图(view)-控制器(controller)的缩写 ,是一种软件设计思想,主要的作用就是解决
    2021-04-05