我正在使用关于@autowired和@primary annotation的spring boot教程
下面你可以找到我的主类
package com.example.springtest;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import service.Animal;
@SpringBootApplication
public class SpringtestApplication {
@Autowired
private Animal animal;
public static void main(String[] args) {
SpringApplication.run(SpringtestApplication.class, args);
}
}
动物界面(我应该学会的界面)
package service;
public interface Animal {
String characteristics();
}
package service;
import org.springframework.context.annotation.Primary;
import org.springframework.stereotype.Service;
@Primary
@Service
public class Dog implements Animal {
@Override
public String characteristics() {
return "Bark";
}
}
package service;
import org.springframework.stereotype.Service;
@Service
public class Cat implements Animal {
@Override
public String characteristics() {
return "Meow";
}
}
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.3.1.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.example</groupId>
<artifactId>springtest</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>springtest</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
当我运行应用程序时,动物注射出现问题,我得到以下错误:
***************************
APPLICATION FAILED TO START
***************************
Description:
Field animal in com.example.springtest.SpringtestApplication required a bean of type 'service.Animal' that could not be found.
The injection point has the following annotations:
- @org.springframework.beans.factory.annotation.Autowired(required=true)
Action:
Consider defining a bean of type 'service.Animal' in your configuration.
Spring不能进行自动取舍的原因是什么?
您需要向主类添加@componentscan
注释,告诉它扫描服务包,否则它不会初始化这些bean
使用mvn spring boot启动时:run或甚至使用gradle返回该问题。 这里是主要的类,在我看来所有的需求都可以,我使用的是org.springframework.boot版本1.5.7 以及: 使用Maven或Gradle会返回相同的问题。所有注释和包名称似乎都符合要求。
我只是试图通过本教程springboot,但当我运行它显示一个错误。我不明白这个错误。 ”描述: com.mii.tugas.中setEmf方法的参数0。Mahasiswao需要一个无法找到的'javax.persistence.EntityManagerFactory'类型的bean。 措施: 考虑定义“javax”类型的bean。坚持不懈配置中的EntityManagerFactory。" 这
application.java: servletInitializer.java:
我一直在学习如何使用spring数据,并创建了一个非常简单的项目来测试它。文件夹结构和applicationcontext。xml显示在这里:applicationcontext。xml和文件夹结构我得到的错误显示在这里:控制台错误输出。我在类路径上有applicationContext,并声明了该类的bean,你知道我的问题是什么吗?非常感谢。 编辑:我已经更新了我的帖子,以显示主类和道类,以及
编辑-更新:我根据本教程创建了一个全新的项目,我注意到,在配置pom后,问题是如果我添加 应用程序类的注释。 我是Spring Boot的新手,我已经创建了一个具有持久性的简单工作应用程序,现在我试图添加Spring security jwt,但它不起作用。 以下是我的项目结构: 在为安全性添加依赖项之前,它在持久性方面都工作得很好,现在是这样。我错过了什么?
我搜索了很多stackoverflow,但没有找到解决问题的方法。当将SpringBoot应用程序作为WAR文件部署到Tomcat 8时,我发现以下错误,在本地它确实可以正常工作 有一个接口 和两个实现类 和二等舱 还有Rest服务 所以我不明白Tomcat怎么找不到像boolean这样的原始数据类型,也不明白为什么我在本地运行它时它能工作。 任何帮助都将不胜感激 问候马蒂亚斯