如何在春季配置中为所有子类提供单个bean定义?

时间:2018-11-15 17:02:50

标签: java spring spring-boot dependency-injection inversion-of-control

我是Spring的新手,正在探索它,我想在Spring容器中从特定的包创建所有对象。

圈子类别:

@Component
public class Circle extends AbstractShape  {

@Override
public void draw() {

}

@Override
public int calculateArea(int x, int y) {
    return (int) (3.14 * x * y);
}

}

广场课:

@Component
public class Square extends AbstractShape {
    @Override
    public void draw() {

    }

    @Override
    public int calculateArea(int x, int y) {
        return x * y;
    }
}

我的spring config类基本上为我创建了Bean Defination:

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class ShapeConfig {

    @Bean
    public Circle getCircle() {
        return new Circle();
    }

    @Bean
    public Square getSquare() {
        return new Square();
    }
}

我希望创建扩展类“ AbstractShape”的bean定义,并希望避免在config类中一一提供bean定义。请建议可行的方法。

预先感谢

Priyank

2 个答案:

答案 0 :(得分:1)

<v-layout row> <transition name="slide-x-transition"> <v-flex v-if="showRed" xs4 style="background-color:red"> </v-flex> </transition> <v-flex style="background-color:blue"> <!--Doesn't smoothly fill in--> <v-btn @click="showRed = !showRed">HIDE/SHOW</v-btn> </v-flex> </v-layout> 注释类CircleSquare本身对于这样的任务要容易得多。

此方法与在@Component类中声明方法相同,即您现在的操作方式。

您可以尝试注释@Configuration类,但从我的头顶上不知道它是否有效

答案 1 :(得分:0)

在配置时添加@ComponenetScan即可解决。

感谢您的回答。