ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

spring学习13:使用JavaConfig实现配置

2022-04-12 12:01:46  阅读:154  来源: 互联网

标签:13 name spring getUser public JavaConfig bean User class


spring学习13:使用JavaConfig实现配置

  • 使用Java的方式配置Spring:

    • 我们现在要完全不使用Spring的xml配置了,全权交给Java来做;

    • JavaConfig是Spring的子项目,在Spring4之后,它称为了一个核心功能;

       

 

  • 代码案例:User

    //这个注解的意思,就是说这个类被Spring管理了,注册到容器中
    @Component
    public class User {

       //属性注入值
       @Value("张三")
       private String name;


       public String getName() {
           return name;
      }

       public void setName(String name) {
           this.name = name;
      }
    }
  • 代码案例:MyConfig配置类


    //也会被Spring容器管理,注册到容器中,因为它本来就是一个Component
    //@Configuration:代表这是一个配置类,类似于beans.xml;
    @Configuration
    @ComponentScan("com.ljxdemo.pojo")
    public class MyConfig {

       //注册一个bean,就相当于我们之前写的一个bean标签;
       //这个方法的名字,就相当于bean标签的id属性;
       //这个方法的返回值,就相当于bean标签的class属性;
       @Bean
       public User getUser(){
           return  new User() ;
      }
    }
  • 代码案例:MyConfig2:多个配置类

    //多个beans.xml,需要import注解
    @Configuration
    @ComponentScan("com.ljxdemo.pojo")
    @Import(MyConfig2.class)
    public class MyConfig2 {

       //注册一个bean,就相当于我们之前写的一个bean标签;
       //这个方法的名字,就相当于bean标签的id属性;
       //这个方法的返回值,就相当于bean标签的class属性;
       @Bean
       public User getUser(){
           return  new User() ;
      }

    }
  • 代码案例:测试类

    public class MyTest {

       @Test
       public void test(){
           //如果完全使用了配置类方式:
           //我们就只能通过AnnotationConfig上下文来获取容器,通过配置类的class对象加载!
           ApplicationContext context = new AnnotationConfigApplicationContext(MyConfig.class);
           User getUser = (User) context.getBean("getUser");
           System.out.println(getUser);
      }
    }

 

 

 

  • 总结:

    • 这种纯Java的配置方式,在SpringBoot中随处可见;

       

 

 

 

 

标签:13,name,spring,getUser,public,JavaConfig,bean,User,class
来源: https://www.cnblogs.com/gzs1024/p/16134422.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有