我无法在我的Spring启动应用程序中使用Autowired注释。
我收到的错误是“无法自动装配字段。没有类型的合格bean”
我已经验证来自Controller on down的代码不是POJO并且有Spring注释。
我也无法在包之外运行我的main方法。有什么建议吗?
package com.xxx.controller;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.context.web.SpringBootServletInitializer;
@SpringBootApplication
public class SampleWebJspApplication extends SpringBootServletInitializer {
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(SampleWebJspApplication.class);
}
public static void main(String[] args) throws Exception {
SpringApplication.run(SampleWebJspApplication.class, args);
}
}
UserService类
package com.xxx.service;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.xxx.entity.User;
import com.xxx.repository.UserRepository;
@Service
public class UserService {
@Autowired
private UserRepository userRepository;
public List<User> findAll() {
return userRepository.findAll();
}
}
UserRepository类
package com.xxx.repository;
import org.springframework.data.jpa.repository.JpaRepository;
import com.xxx.entity.User;
public interface UserRepository extends JpaRepository<User, Integer> {
}
答案 0 :(得分:1)
可能有两个可能的原因:
@ComponentScan
包中。@EnableJPARepositories
包中不包含存储库包。答案 1 :(得分:1)
您的@SpringBootApplication批注位于“ com.xxx.controller”包中,因此Spring可以将组件从此包扫描到其中的包中。
Docs:如果未定义特定的程序包,则将从声明此注释的类的程序包中进行扫描。
尝试:
或