我的Spring应用程序中有两个基本包 - com.company.myappmonitor
和com.company.myappcommon
。
在com.company.myappmonitor
内,我有子包com.company.myappmonitor.dao
和com.company.myappmonitor.repository
。
我使用了Intellij Refactor>移至com.company.myappmonitor.dao
和com.company.myappmonitor.repository
移至com.company.myappcommon
- 因此它们现在位于com.company.myappcommon.dao
和com.company.myappcommon.repository
。我能够成功构建Spring应用程序。
将这些子包移至com.company.myappcommon
后 - 我收到的错误是我的@Autowired
注释之一不再有效。错误是
***************************
APPLICATION FAILED TO START
***************************
Description:
Field myVersionsRepository in com.company.myappmonitor.service.myVersionsServiceImpl required a bean of type 'com.company.myappcommon.repository.myVersionsRepository' that could not be found.
Action:
Consider defining a bean of type 'com.company.myappcommon.repository.myVersionsRepository' in your configuration.
@Autowired
在我移动dao和存储库子包之前正在工作。
我使用Spring java配置和注释在Spring上下文中设置我的服务。我的myVersionsRepository看起来像
package com.company.myappcommon.repository;
import ...
@Transactional
@Repository
public interface myVersionsRepository extends CrudRepository<myVersions, String>, myVersionsRepositoryCustom {
我的myVersionsServiceImpl看起来像
package com.company.myappmonitor.service;
import ...
@Service(value = "myVersionsServiceImpl")
public class myVersionsServiceImpl implements myVersionsService {
@Autowired
myVersionsRepository myVersionsRepository;
我的配置类看起来像
package com.company.myappmonitor.config;
import ...
@Configuration
@PropertySource("classpath:application.properties")
@ComponentScan("com.company")
public class AppConfig {
我认为我的@ComponentScan
basePackages存在问题。我试过了
@ComponentScan("com.company")
@ComponentScan("com.company.myappmonitor", "com.company.myappcommon")
and
@ComponentScan(basePackages = {"com.company.myappmonitor", "com.company.myappcommon"})
这些都没有奏效。我有什么想法可以收到此错误?谢谢!
答案 0 :(得分:1)
尝试将“com.company.myappcommon。*”添加到void *foo(void *i) {
int a = *((int *) i);
free(i);
}
int main {
int *arg = (char*)malloc(sizeof(char))
pthread_create(&thread, 0, foo, arg);
}
basePackages。如:
compontScan
答案 1 :(得分:0)
我能够让我的应用程序构建,@Autowired工作。
问题是由于某种原因未扫描@Repository组件
我实际上并没有那么多地使用我的存储库类,我只是完全删除了com.company.myappcommon.repository子包并且应用程序构建得很好。
答案 2 :(得分:0)
我也遇到了同样的问题。我添加了下面的代码,并且可以正常工作。
@SpringBootApplication(scanPackages = "your package")
检查官方网站以供参考。
https://www.java2novice.com/issues/spring-boot-not-scanning-components/