我有一个问题,定义的存储库在服务器启动时没有被正确解释为bean。@SpringBootApplication的类位于比定义的存储库更高的目录中,所以我找不到为什么它不配置。
@SpringBootApplication:
package com.example.demo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Date;
import java.util.Properties;
@SpringBootApplication
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
System.out.println("http://localhost:8080");
}
}
资源库
package lab14.panoslab.Repositories;
import lab14.panoslab.Models.Account;
import org.apache.catalina.User;
import org.hibernate.annotations.NotFound;
import org.hibernate.annotations.NotFoundAction;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;
import java.util.List;
@Repository
public interface UserRepository extends JpaRepository<Account,Long> {
@NotFound(action = NotFoundAction.IGNORE)
List<User> findByUsername(String username);
}
错误代码:
***************************应用程序启动失败***************************
说明:
lab14中的字段userRepository。全景板。控制器。RegisterController需要“lab14”类型的bean。全景板。存储库。找不到UserRepository。
行动:
考虑定义“lab14”类型的bean。全景板。存储库。配置中的UserRepository。
进程结束,退出代码1
我确实面临过类似的问题。我犯的错误是,我将控制器/存储库和其他组件包放在了主类包之外。Spring boot无法识别我的组件,
例如:主类包是包com。实例演示;
类似控制器包的com包。实例控制器;
存储库包,如包com。实例存储库;
下面是解决这个问题的两种不同方法,
在@ComponentScan中显式地定义我的组件包,例如@ComponentScan(basePackages=“com.example.controller,com.example.repository”)和所需组件的基本包。
否则,您可以在主包内创建控制器/存储库包。因此,您不需要定义@ComponentScan和所有内容。对于ex,
主类包是包com。实例演示;
类似控制器包的com包。实例演示。控制器;
存储库包,如包com。实例演示。存储库;
您确定您的类帐户
实现了接口User
吗?
并尝试删除注释存储库,并在您的DemoApplication类中添加注释EntityScan和EnableJpaRepositories
@SpringBootApplication
@EntityScan({"lab14.panoslab.Models"})
@EnableJpaRepositories({"lab14.panoslab.Repositories"})
public class DemoApplication {...}
此外,我建议您将所有包重命名为小写并返回一个值List
我想创建一个Spring Bean Factory后处理器,将Bean添加到当前的ApplicationContext中。 我的中有很多Web-Services定义,我想尽可能地减少。 配置如下所示: 因此,我用以下bean定义创建了一个@Configuration类: 这好多了!,但是我想把它减少得更多,所以我想创建一个名为@WebService定义的注释,并添加一个BeanFactoryPos
我正在尝试使用动态创建N个bean。基于这个问题,我选择在我的用例中使用。 我在: 它连接到一个类:https://github.com/ciscoo/dynamicbeans/blob/master/src/main/java/io/mateo/dynamicbeans/FeignConfigurationProperties.java 然后我想注入那个类以及我在这里定义的工厂bean:http
我有一个factory-ish bean,它在启动时创建了许多对象,我希望这些对象本身就是Spring bean。 如果我创建一个对象,我可以使用工厂方法进行实例化,例如(来自Spring文档第4.3.2.3节): 如果我提前知道我有n个对象,我可以调用n个不同的方法,但是我没有——我的工厂创建了任意数量的对象,而这些对象是提前不知道的。 有人知道怎么做吗? 目标是让它们成为“合适的”Spring
我是spring的新手,我正在尝试修改我的应用程序来实现spring框架。我的请求是为每一个新请求创建一个新bean,然后在后面的代码中引用该bean,以便从单个bean中为其设置值。我正在尝试将bean声明为prototype,并使用查找方法在我的单例bean中引用该bean。但我的问题是,当稍后尝试获取创建的原型bean以设置值时,我看到它在获取bean时再次创建新的bean。 下面是我的原型
问题内容: 我使用ektorp连接到CouchDB。 构建ektorp 实例的方法是使用构建器模式: 我对Spring比较陌生。请为我提供有关如何在上下文中配置以便通过进行创建的建议。 一种方法是使用。还有其他选择吗? 问题答案: 您可以尝试实现接口: 并添加到配置以下bean定义: 然后,您可以将此bean注入另一个bean,它将作为实例进行解析。
尝试在这里使用Mapstruct做一些测试。我有以下类: 试验等级 测绘仪 在这里考虑模型 生成的通用MapperImpl: 当我尝试运行测试时,他给出了以下错误: MapperTest中的@Autowire不起作用。它声称:“无法自动连线。找不到“UsuarioMapper”类型的beans。 已尝试: gradle build(无错误) gradle build-x test(无错误) 使缓存