问题

我在写一个项目的时候,用到了一个@PostConstruct的注解用来执行一个启动项目就执行的一个事情,但是启动时,却发现出现了被执行两次的情况,不明所以。

DispatherServlet被初始化两次的原因(@PostConstruct的注解代码被执行两次)

DispatherServlet被初始化两次的原因(@PostConstruct的注解代码被执行两次)

原因:

后来查看我的项目,我的项目名字为myssm,这也是我的项目在tomcat下面部署的名字。

DispatherServlet被初始化两次的原因(@PostConstruct的注解代码被执行两次)

而在看我项目属性:

DispatherServlet被初始化两次的原因(@PostConstruct的注解代码被执行两次)

这两个存在着不一样,好的那就改成一样的,都改成同一个名字myssm。

DispatherServlet被初始化两次的原因(@PostConstruct的注解代码被执行两次)

很好,只执行了一次。

详解:

这是因为刚才从eclipse修改的web Project settings直接影响的是tomcat的server.xml里面context节点的内容:

DispatherServlet被初始化两次的原因(@PostConstruct的注解代码被执行两次)

<context>节点的改成一致以后的效果:

DispatherServlet被初始化两次的原因(@PostConstruct的注解代码被执行两次)

我看网上还有一种解决方案:

将你的应用从Tomat的默认webapp目录下移出去,然后在server.xml中修改docBase的值为你的应用在新位置的绝对路径就可以了,这种方式我没有试;

相关文章:

  • 2021-06-14
  • 2022-02-28
  • 2022-12-23
  • 2021-12-23
  • 2021-09-01
  • 2021-07-07
  • 2021-12-24
猜你喜欢
  • 2021-06-18
  • 2023-02-07
  • 2022-12-23
  • 2022-12-23
  • 2019-06-11
  • 2021-12-26
相关资源
相似解决方案