如果我理解正确,请帮助我理解
Bean 就是一切,包括类、接口和抽象类,对吧?
我被这段代码弄糊涂了
@Autowired IncomingRequestRepo incomingRequestRepo;
鉴于incomingRequestRepo 是一个接口!而且我不明白为什么要创建接口类型的变量,这是被禁止的
Bean中应该有数据处理,一切都会是bean,除了模型和异常。也就是说,如果我不在任何地方使用它们,我就不需要制作简单的类bean,但它很简单,例如,模型
如果我想在一个 bean 的类中调用另一个 bean 的方法,我必须注入它
我是否正确理解了这一点?
bean 仍然是特定的实现,但您也可以注入接口变量。但是有这么一个时刻,spring 必须准确地理解使用这个接口注入哪个类,会有歧义——它会抛出异常。
垃圾箱将是您制作的垃圾箱,其余的是 pojo 类。当我开始学习时,我问过自己同样的问题。如果你给自己简单定义了这样一个本质:一个bean是一个类,应该由spring容器管理(创建,依赖管理),如果没有这个必要,离开pojo。
好吧,一般来说,是的。
这是一个类的实例,但它可以是接口类型、抽象类等。与“常规”java 没有区别。您正在使用的 IOC 容器必须以某种方式了解将哪个类实例注入到变量中。至少,必须将适合注入的类指定为 bean。
所有相同的开发规则和建议都适用于此。关键是您有机会反转控制:一个存在依赖注入的类不依赖于该类(如果变量是接口类型),它的一个实例被注入其中。当使用 new 时,它会出现。如果您尚未阅读,我建议您阅读有关该主题的文献。
不,不一定,例如,可以将对象作为方法参数传递。依赖注入只是一种在创建对象时将一个对象的引用添加到另一个对象的方法,你可以自己做,但是 ioc 容器会为你做