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

bean不工作上下文的自动化:组件扫描

武骁
2023-03-14
@ContextConfiguration("classpath:appContext-test.xml")
@Transactional
public class PersonRepositoryTest extends AbstractTransactionalJUnit4SpringContextTests {
    private static Logger logger = LoggerFactory.getLogger(PersonRepositoryTest.class);

    @Autowired
    PersonRepository personRepository;

我的appcontext-test.xml可以很好地处理这个

<jpa:repositories base-package="com.mycompany.rd.misf.repository" /> 

但当我试图理解spring时,我认为这可能也有用。因此,我注释了jpa:repositories标记,并用以下内容补充了我的组件扫描:

<context:component-scan base-package="com.mycompany.rd.misf.model,com.mycompany.rd.misf.repository" />

我的存储库是用@repository注释的

@Repository
public interface PersonRepository extends JpaRepository<Person, Long> {
    public List<Person> findByFirstNameAndLastName(String firstName,
            String lastName);

    @Query("select p from Person p where p.firstName = :firstName or p.lastName = :lastName")
    public List<Person> findByFirstNameOrLastName(
            @Param("firstName") String firstName,
            @Param("lastName") String lastName);

    public Page<Person> findAll(Pageable pageable);
}

共有1个答案

黄浩涆
2023-03-14

Spring JPA文档对JPA:repositories有以下说明

[...]Spring被指示扫描com.acme.repositories及其所有子包,寻找扩展存储库的接口或其子接口之一。对于找到的每个接口,基础结构注册持久性技术特定的FactoryBean,以创建处理查询方法调用的适当代理。每个bean都注册在从接口名派生的bean名下,因此UserRepository的接口将注册在UserRepository下。base-package属性允许使用通配符,这样您就可以定义扫描包的模式。

所以

<jpa:repositories base-package="com.mycompany.rd.misf.repository" /> 
<context:component-scan base-package="com.mycompany.rd.misf.model,com.mycompany.rd.misf.repository" />
 类似资料:
  • 我创建了一个示例Spring Boot应用程序,当所有服务类都在一个包中时,该应用程序运行良好,但如果一个服务类引用了不同包中的另一个服务类,那么我将得到BeanCreationException 下面给出了应用程序的代码

  • 我定义了一个bean在Spring上下文文件'Application ationContext.xml'如下所示: 在我的服务类(ServiceImpl)中,我使用如下bean: 正在从JUnit测试类访问我的服务类。 当我执行测试用例时,它会给出错误提示: 创建名为“ServiceImpl”的bean时出错:自动连线依赖项的注入失败;嵌套的异常是org。springframework。豆。工厂B

  • 我正在开发一个带有文件上传的web应用程序。 我只是写了一个PHP代码来上传一个图像。 当我运行此代码时,我可以在文件上传时获得输出,如果上传错误 我给了777权限来访问pic文件夹 有什么问题,有什么想法吗,, 类型 Print_R 数组 谢啦

  • 在使用Spring AOP之前,我有一个这样的工作代码: 在哪里 在哪里 我的城市财产编辑自动接线工作正常。但是在为所有方法添加Spring AOP切入点之后: 城市地产编辑器的自动连接崩溃。事实上,bean不再属于CityProperty tyEditor类,而是简单地属性编辑器: 因此,我不得不将类从CityPropertyEditor更改为PropertyEditor,作为一种解决方法。有趣

  • 下面是我的表格: 截取方法如下: 我添加了以下bean:

  • 在selenium(Java)中右键单击后,我无法单击任何元素。它只是做了一个右键点击,而不是点击任何选项,如打开新标签。。。相反,它只是在右键点击之后进行普通点击。谁能帮帮我吗。下面是我的代码 系统setProperty(“webdriver.chrome.driver”、“C:\Selenium\chromedriver.exe”);WebDriver wd=新的ChromeDriver();