公司项目配置的Spring项目的包扫描有点问题,出现了一个被Spring容器管理的Bean被创建了2次的现象。在此记录下解决的过程,方便后续查阅。
改动前:
容器启动监听器中会扫描全部包,创建实例
![SpingMVC的<context:component-scan>包扫描踩坑记录 SpingMVC的<context:component-scan>包扫描踩坑记录](https://image.shishitao.com:8440/aHR0cHM6Ly9iYnNtYXguaWthZmFuLmNvbS9zdGF0aWMvTDNCeWIzaDVMMmgwZEhCekwybHRaekl3TVRndVkyNWliRzluY3k1amIyMHZZbXh2Wnk4eE1qSXlOamc0THpJd01UZ3hNUzh4TWpJeU5qZzRMVEl3TVRneE1UQTRNVGMxTVRFeE1qZ3pMVEUwTXpZeE9ESTROVGd1Y0c1bi5qcGc%3D.jpg?w=700&webp=1)
SpringMVC配置文件也会扫描全部包,创建实例
![SpingMVC的<context:component-scan>包扫描踩坑记录 SpingMVC的<context:component-scan>包扫描踩坑记录](https://image.shishitao.com:8440/aHR0cHM6Ly9iYnNtYXguaWthZmFuLmNvbS9zdGF0aWMvTDNCeWIzaDVMMmgwZEhCekwybHRaekl3TVRndVkyNWliRzluY3k1amIyMHZZbXh2Wnk4eE1qSXlOamc0THpJd01UZ3hNUzh4TWpJeU5qZzRMVEl3TVRneE1UQTRNVGMxTVRFeE5UVTBMVEUxTkRreU56WXhNamd1Y0c1bi5qcGc%3D.jpg?w=700&webp=1)
产生的问题:加了注解的类的实例都创建了2个
改动后:
容器启动监听器里面负责非Controller层bean的创建
SpingMVC配置文件里只负责Controller层bean的创建
![SpingMVC的<context:component-scan>包扫描踩坑记录 SpingMVC的<context:component-scan>包扫描踩坑记录](https://image.shishitao.com:8440/aHR0cHM6Ly9iYnNtYXguaWthZmFuLmNvbS9zdGF0aWMvTDNCeWIzaDVMMmgwZEhCekwybHRaekl3TVRndVkyNWliRzluY3k1amIyMHZZbXh2Wnk4eE1qSXlOamc0THpJd01UZ3hNUzh4TWpJeU5qZzRMVEl3TVRneE1UQTRNVGMxTVRFeU1EZzNMVEl3TVRjek9UazJNakF1Y0c1bi5qcGc%3D.jpg?w=700&webp=1)
参考链接: