当前位置: 首页 > 知识库问答 >
问题:

如何在spring 4中通过注释设置默认的beans init方法?

岳研
2023-03-14

我正在通过Java注释来学习使用Spring 4,我找不到如何将默认的init-method设置为属于特定配置的所有bean,而不添加@PostContruct注释来初始化所有类的方法,也不使它们实现初始化Bean接口...我只想做这样的事情:

<beans default-init-method="init">

    <bean id="blogService" class="com.foo.DefaultBlogService">
    </bean>

    <bean id="anotherBean" class="com.foo.AnotherBean">
    </bean>

</beans>

所以,我想通过Java注释来做到这一点,我想在bean的配置容器上设置默认bean配置。这可能吗?问候

编辑:我真正想做的是告诉html" target="_blank">spring在默认情况下对我在BeanSConfiguration类中创建的所有bean运行“initialize”方法。这意味着,放置一些注释或其他东西,以确定默认情况下所有包含的bean都将运行此初始化方法。但正如我之前所说,我不想接触bean类,我的意思是,我不想为每个bean类的每个initialize方法添加@PostConstructor注释,也不想让每个bean都实现InitializeBean接口

共有2个答案

淳于泓
2023-03-14

如果我正确理解了您的问题,那么您希望每个bean都运行其init方法(如果有),而不在配置文件中声明所有方法。我想你自己的帖子已经有了答案,它是默认的init方法。在要初始化的bean类中,在每个bean类中实现一个public void init()方法。当应用程序启动时,它们都将被调用。

盛柏
2023-03-14

您可以执行以下操作:

@Configuration
public class SomeConfig {

   @Bean(initMethod = "initMethodName")
   public SomeBeanClass someBeanClass() {
      return new SomeBeanClass();
   }
}

您将对要调用initMethod odName的每个bean重复这一点。

您可以进一步实现一个元注释,如

@Bean(initMethod = "initMethodNAme")
public @interface MyBean {
}

只需在SomeConfig中使用MyBean而不是Bean(initMethodName

 类似资料:
  • 我知道DateTimeFormat注释可以在Spring中的模型类的日期属性上定义,但是有没有任何方法可以为Spring模型类中的所有日期定义一个默认的DateTimeFormat注释呢? @DateTimeFormat(pattern=“MM/DD/YYYY”) 私人日期DeliveryDate; 它将使我不必对每个日期字段进行注释。它还将使我更容易更改应用程序宽日期格式以后。

  • 我在互联网上搜索过,看到了关于在mysql中使用Hibernate注释在实体类中设置默认值的想法,我已经完成了将默认值设置为具有数据类型整数的列,如下所示。 而且工作得很好。 但是我没有看到任何varchar/string数据类型的示例,我尝试了columnDefinition中的不同类型,比如, 使用“长度”属性:- 等等。 但在这种情况下,表不是由hibernate创建的,这可能是由于语法错误

  • 如果我在spring的控制器中有一个映射,比如: 我可以做一个注释,并将默认值10封装在上面吗?比如: 让spring像预期的那样理解我的注释。我发现https://stackabuse.com/spring-annotations-requestmapping-and-its-variants/当我看到他们用@GetMapping、@PostMapping等工具所做的事情时,我有点满怀希望。 但

  • 问题内容: 我有一个仅适用于IE的代码,我正在FF和Chrome中寻找类似的东西,以通过链接“单击此处使该站点成为您的默认主页”来设置用户的默认主页,但到目前为止我什么都没找到。 有谁知道如何做到这一点? 问题答案: 由于安全性,您无法在FF中执行此操作。您的用户必须将sign.applets.codebase_principal_support设置更改为false。可能没有值得指望的东西。

  • 我在表中为某些列设置了默认值。例如,create_time我已经设置了CURRENT_TIMESTAMP。当我通过JPA插入一个对象时,我没有得到该列的默认值。是否有任何命令可以执行此操作?

  • 这可能非常简单,但我不知道如何有效地用这个词来谷歌。 我希望为我的python/flask/JavaScript项目设置一个默认的代码样式/linter。我有人使用不同的IDE,所以有时候在VSCode上格式良好的代码在PyCharm上会有不同的标记。 是否有某种设置文件,我可以创建,将导致任何IDE读取它,并使用设置linter?我谷歌了一下,只发现人们通过他们的IDE设置他们的linter 我