轻松入门springboot之自动配置

举报
俺想吃蜂蜜 发表于 2022/04/13 08:04:32 2022/04/13
【摘要】 自动配置 javaconfigspring中Bean的配置⽅式的 :Xml配置⽅式Annotation配置⽅式启用 Annotaion 配置设置组件扫描与 Bean 命名设置组件扫描的基础包设置组件扫描的基础包JavaConfig配置⽅式springboot中推荐使⽤JavaConfig的配置⽅式,可通过⼀个具体的例⼦了解JavaConfig的使⽤。例如: springboot-javac...

自动配置

javaconfig

spring中Bean的配置⽅式的 :

  1. Xml配置⽅式

  2. Annotation配置⽅式

启用 Annotaion 配置

设置组件扫描与 Bean 命名

设置组件扫描的基础包

设置组件扫描的基础包

  1. JavaConfig配置⽅式

springboot中推荐使⽤JavaConfig的配置⽅式,可通过⼀个具体的例⼦了解JavaConfig的使⽤。

例如: springboot-javaconfig项⽬

image.png
User和Group类要配置到spring容器中,如果是xml⽅式的话,就是在xml中配置bean标签即可,如果是annotation⽅式的话,在类上⾯加⼊@Component注解即可,如果是JavaConfig⽅式的话,编写⼀个java的配置类即可,例如下⾯的AppConfig.java

User类


public class User {

private long id;

private String name;

private Group group;

public long getId() {

return id;

}

public void setId(long id) {

this.id = id;

}

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;
}

public Group getGroup() {

return group;

}

public void setGroup(Group group) {

this.group = group;

}

}

Group类:

public class Group {

private long id;

private String name;

public long getId() {

return id;

}

public void setId(long id) {

this.id = id;

}

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

}

注意:User和Group这俩个类,既没有配置xml中的bean标签,也没有给这俩个类上加@Component注解

JavaConfig类:

package com.briup.config;

import org.springframework.context.annotation.Bean;

import org.springframework.context.annotation.Configuration;

import com.briup.bean.Group;

import com.briup.bean.User;

@Configuration

public class AppConfig {
@Bean

public User user(Group group) {

User user = new User();

user.setGroup(group);

return user;

}

@Bean

public Group group() {

return new Group();

}

}

该配置类放到springboot⼊⼝类的包下或者其⼦包下,会被⾃动扫描读取到,其本质上和xml配置以及

annotation配置的原理是⼀样的,只是变了另⼀种形式。

测试类:

package com.briup.demo;

import org.junit.jupiter.api.Test;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.boot.test.context.SpringBootTest;

import com.briup.bean.User;

@SpringBootTest

class DemoApplicationTests {

@Autowired

private User user;

@Test

void contextLoads() {

System.out.println(user);

System.out.println(user.getGroup());

}

}

直接使⽤junit的测试⽅式运⾏contextLoads⽅法即可:

image.png

从结果中可以看出,user对象以及user⾥⾯关联的group对象都可以获取的到。

这个测试的⼤致过程是:

image.png

注意,和⼊⼝类同包或⼦包下⾯的配置类可以被⾃动扫描到并读取

【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请自行联系原作者进行授权。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。