我在下面创建了AppConfig.java,没有@configuration注释。
public class AppConfig {
@Bean(name="sampleService")
public SampleService getSampleService(){
return new SampleService();
}
}
将这个类作为我的java配置类传递给AnnotationConfigApplicationContext
,它接受并注册了我的服务bean。
我对上面相同的AppConfig做了一些修改,如下所示。
@Component
public class AppConfig {
@Bean(name="sampleService")
public SampleService getSampleService(){
return new SampleService();
}
}
@组件
指示带注释的类是“组件”。
也就是说,在启用组件扫描的上下文中,Spring为@component
注释类型生成bean定义。这些bean定义最终被转换为bean。
@configuration
,它本身用
指示一个类声明一个或多个@bean
方法,并且可以由Spring容器处理以在运行时为这些bean生成bean定义和服务请求,[...]
因此,Spring为其生成bean的任何@configuration
类型都充当bean的工厂。
@bean
的javadoc状态
因此,@bean
方法在@configuration
注释类中具有全部功能,在@component
注释类中具有有限功能。
为什么即使没有@configuration注释它也接受?
类就是这样设计的。applicationcontext
是BeanFactory
。AnnotationConfigApplicationContext
提供了一种注册bean定义的额外方法。
问题内容: 我一直在努力使getResource在整个上午正常工作,但是到目前为止,我必须使其正常工作的唯一方法是将res文件夹移到bin文件夹,然后像这样使用getResource 但是我有没有办法使res不在bin文件夹中? 问题答案: 没关系,我真不敢相信那是多么愚蠢的修复。 我将res文件夹添加到主项目文件夹而不是bin中,然后进入eclipse 运行>运行配置>类路径>选择用户条目>高级
问题内容: 我已经在程序中hibernate了带注释的类。由于我正在运行Spring项目,因此已将它们包含在servlet.xml文件中(com.student.dto是实际的包名称),并在Contacts实体上添加了@Component。是否有一种方法可以自动添加@Component在所有hibernate类上。每次创建模型时,我最终都会这样做,并且觉得应该做得更好。 问题答案: 你做错了一切。
我是Spock框架的新手,在使用抽象java测试类时遇到了问题。 我想要的是一个groovy测试类,它用一些常用的方法扩展一些其他java抽象类,这些方法反过来扩展规范类。 当我运行GroovyTest类时,我得到以下错误: Org.SpockFramework.Runtime.InvalidSpecException:规范“org.my.package.AbstractTest”未正确编译(Sp
问题内容: 我在尝试使用定义上下文层次结构时遇到问题。 问题是在内部定义模块上下文并使用另一个上下文(基于XML / Annotated)设置’parent’属性时。 例: 模块A中的beanRefContext.xml db-context.xml 模块B中的beanRefContext.xml 冬眠道 模块B应用程序上下文无法找到在模块A应用程序上下文中定义的bean。 从代码看,扫描过程似乎
我试图在freemarker上执行宏,但在实现css类作为参数时遇到了问题。我的对象有一些默认的css类,我想添加可选类。 第2行)只呈现“id”参数。如果我删除了宏的class="ui-按钮",那么它将正确呈现。 我能做什么来呈现两个或更多的类参数???