Java 我想创建非web spring启动应用程序

Java 我想创建非web spring启动应用程序,java,spring,spring-boot,spring-mvc,spring-data,Java,Spring,Spring Boot,Spring Mvc,Spring Data,我想创建非web spring启动应用程序。但我有以下错误 @SpringBootApplication public class TaskApplication implements CommandLineRunner { @Autowired TaskService taskService; public static void main(String[] args) { SpringApplication.run(TaskApplication.

我想创建非web spring启动应用程序。但我有以下错误

@SpringBootApplication
public class TaskApplication implements CommandLineRunner {

    @Autowired
    TaskService taskService;

    public static void main(String[] args) {
        SpringApplication.run(TaskApplication.class, args);
    }

    @Override
    public void run(String... args) throws Exception {

        taskService.print();

    }

}

public interface TaskService  {

    public void print();
}



public class TaskServiceImpl implements TaskService {

    @Override
    public void print() {
        System.out.println("sam");
    }

}
特性:

spring.datasource.url=jdbc:mysql://localhost:3306/demo?verifyServerCertificate=false&useSSL=false&requireSSL=false&allowPublicKeyRetrieval=true
spring.datasource.username=root
spring.datasource.password=root@123
spring.datasource.driverClassName=com.mysql.cj.jdbc.Driver
spring.jpa.show-sql=true
spring.jpa.hibernate.dialect=org.hibernate.dialect.MySQLDialect
spring.main.allow-bean-definition-overriding=true
##spring.jpa.hibernate.ddl-auto=update
错误

行动:

考虑在配置中定义“com.example.task.service.TaskService”类型的bean


您需要在主类上配置@EnableAutoConfiguration,并且您的TaskService必须用@Service注释。您需要在主类上配置@EnableAutoConfiguration,并且您的TaskService必须用@Service注释。Deinum已经在注释中解释过。您需要使用
@Service
@Component
注释标记类,以创建Springbean并在main方法中自动连接

    // mark it with service annotation.
    @Service
    public class TaskServiceImpl implements TaskService {

        @Override
        public void print() {
            System.out.println("sam");
        }

    }

要理解为什么这里需要这些注释,请访问此链接:

@M.Deinum已经在评论中解释过了。您需要使用
@Service
@Component
注释标记类,以创建Springbean并在main方法中自动连接

    // mark it with service annotation.
    @Service
    public class TaskServiceImpl implements TaskService {

        @Override
        public void print() {
            System.out.println("sam");
        }

    }

要了解为什么需要在此处进行这些注释,请访问此链接:

您的
TaskServiceImpl
应使用
@Service
@Component
进行注释以检测。您的
TaskServiceImpl
应使用
@Service
@Component
进行注释检测到。
@EnableAutoConfiguration
已通过
@SpringBootApplication
暗示,因此无需添加。
@EnableAutoConfiguration
已通过
@SpringBootApplication
暗示,因此无需添加。