相关疑难解决方法(0)

@Bean和@Autowired之间的区别

为什么我不能@Autowired在这种情况下使用?

@SpringBootApplication
public class Application {

    @Autowired
    BookingService bookingService;

    public static void main(String[] args) {
        bookingService.book("Alice", "Bob", "Carol");
    }
}
Run Code Online (Sandbox Code Playgroud)

但可以使用 @Bean

@SpringBootApplication
public class Application {

    @Bean
    BookingService bookingService() {
        return new BookingService();
    }

    public static void main(String[] args) {
        ApplicationContext ctx = SpringApplication.run(Application.class, args);
        BookingService bookingService = ctx.getBean(BookingService.class);
        bookingService.book("Alice", "Bob", "Carol");
    }
}
Run Code Online (Sandbox Code Playgroud)

是不是两种方式生成BookingService相同的东西?

java spring dependency-injection

56
推荐指数
4
解决办法
4万
查看次数

标签 统计

dependency-injection ×1

java ×1

spring ×1