我使用的是jdk8,需要创建一个以类名作为构造函数参数的Spring组件。但是,使用我当前的代码,我遇到了运行时错误:
Parameter 0 of constructor in com.some.MyLogger required a bean of type 'java.lang.String' that could not be found
这是我的博客类:
@Component
public class MyLogger {
protected final Log logger;
public MyLogger(String clazz) {
logger = LogFactory.getLog(clazz);
}
public void debug(String format, Object... args)
{
if (logger.isDebugEnabled())
{
logger.debug(String.format(format, args));
}
}
public void info(String msg)
{
logger.debug(msg);
}
}
这就是我尝试创建类的方式:
@SpringBootApplication
public class Application {
public static void main(String[] args) throws MalformedURLException {
ApplicationContext context = SpringApplication.run(Application.class, args);
MyLogger logger = (MyLogger) context.getBean(MyLogger.class, Application.class.getCanonicalName());
logger.info("================ I AM HERE ====================");
}
我可以了解一下创建该组件的正确方法/这里出了什么问题吗?提前感谢。
默认情况下,组件是< code>singleton,所以Spring试图创建singleton实例,但是它不知道将什么指定为参数。
由于该组件不打算用作单例,因此您需要将范围更改为原型
。
@Component
@Scope("prototype")
public class DuoLogger {
请参阅 Spring 框架文档,第 1.5 节。Bean 作用域,了解有关作用域的详细信息。
问题内容: 我想在 Spring Java配置中 创建一个Spring bean,并在运行时传递一些构造函数参数。我创建了以下Java配置,其中有一个bean fixedLengthReport ,它在构造函数中需要一些参数。 但是我收到错误消息, 表明 未找到bean 导致 sourceSystem 无法连接。如何使用运行时构造函数参数创建bean? 我正在使用Spring 4.2 问题答案:
我有以下代码: 我不希望字段ui有一个getter,但是kotlin在默认情况下会生成它,因为它是构造函数中定义的val。 在properties and fields文档中,我发现我可以用以下代码生成一个私有getter 但我在构造函数定义中找不到这样做的方法
我想在SpringJava配置中创建一个Springbean,并在运行时传递一些构造函数参数。我创建了以下Java配置,其中有一个beanfixedLengthReport,它需要构造函数中的一些参数。 但是我得到一个错误,sourceSystem无法连接,因为没有找到bean。如何用运行时构造函数参数创建bean? 我正在使用Spring 4.2
我不明白为什么一个实体没有参数的构造函数被调用时,提供一个请求体?如果我删除它和唯一存在的构造函数是一个接收参数,我得到预期的输出打印,但我必须实现一个没有参数的构造函数,以保存在数据库中的实体。 以下是路径:注释空构造函数时,新实例的值与请求json体匹配 这是实体类:
启动我的应用程序时出现问题。有人能帮我解决这个问题吗? 总报告 GenericRepositoryImpl 图书仓库搜索 图书服务 图书服务简介
我正试图编写一个简单的CRUD程序,我得到了这个错误。这个项目是基于我的项目。不知道我为什么不工作。 如果我注释掉构造函数,错误就会消失。我的房子里什么都没有。 有人能帮我一把吗? 这是我的代码: 实体/食品。JAVA 仓库/FoodRepository.java 控制器/食物控制器。JAVA 主课 波姆。xml