Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/366.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 无法用路径映射控制器_Java_Spring_Spring Boot - Fatal编程技术网

Java 无法用路径映射控制器

Java 无法用路径映射控制器,java,spring,spring-boot,Java,Spring,Spring Boot,我有一个简单的JavaSpring启动项目,没有任何bean或持久性。我已经创建了多个包来按功能划分类 我读到控制器必须在初始包NameApplication.java中。然而,我在端口8080上启动了项目,并将下一个url localhost:8080/hello/grettings show me放入白标签错误页面,但我将localhost:8080放入并加载index.html 为什么不起作用 @Controller @RequestMapping("/hello") public cla

我有一个简单的JavaSpring启动项目,没有任何bean或持久性。我已经创建了多个包来按功能划分类

我读到控制器必须在初始包NameApplication.java中。然而,我在端口8080上启动了项目,并将下一个url localhost:8080/hello/grettings show me放入白标签错误页面,但我将localhost:8080放入并加载index.html

为什么不起作用

@Controller
@RequestMapping("/hello")
public class BasicController {

    @GetMapping(path = {"/grettings", "/helloworld"})
    public String grettings() {
        return "index";
    }
}
应用程序属性

# Application name.
spring.application.name=CursoSpring 

# Logging
logging.level.root=WARN
logging.level.com.globalomnium=DEBUG
logging.level.org.hibernate.type.descriptor.sql.BasicBinder=TRACE

#Flyway
#spring.flyway.baseline-on-migrate=true

# THYMELEAF
#spring.thymeleaf.check-template-location=true
#spring.thymeleaf.prefix=classpath:/templates/
#spring.thymeleaf.suffix=.html
#spring.thymeleaf.mode=HTML
#spring.thymeleaf.encoding=UTF-8
#spring.thymeleaf.servlet.content-type=text/html 
spring.thymeleaf.cache=false


# Server HTTP port.
server.port=8080
pom.xml

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>

    <dependency> 
        <groupId>org.springframework.boot</groupId> 
        <artifactId>spring-boot-starter-thymeleaf</artifactId> 
    </dependency>

</dependencies>

org.springframework.boot

CursorSpringApplication是应用程序的起点。启动时,它会搜索组件,如@Controller、@Service、@Repository和@Component。通常建议您将主应用程序类定位在根包中,高于其他类。所以这个CursorSpringApplication类应该放在最外层的包中。将
com.globalomnium.axis.maps
更改为
com.globalomnium.axis

示例结构

com
 +- example
     +- myapplication
         +- Application.java
         |
         +- customer
         |   +- Customer.java
         |   +- CustomerController.java
         |   +- CustomerService.java
         |   +- CustomerRepository.java
         |
         +- order
             +- Order.java
             +- OrderController.java
             +- OrderService.java
             +- OrderRepository.java

CursorSpringApplication是应用程序的起点。启动时,它会搜索组件,如@Controller、@Service、@Repository和@Component。通常建议您将主应用程序类定位在根包中,高于其他类。所以这个CursorSpringApplication类应该放在最外层的包中。将
com.globalomnium.axis.maps
更改为
com.globalomnium.axis

示例结构

com
 +- example
     +- myapplication
         +- Application.java
         |
         +- customer
         |   +- Customer.java
         |   +- CustomerController.java
         |   +- CustomerService.java
         |   +- CustomerRepository.java
         |
         +- order
             +- Order.java
             +- OrderController.java
             +- OrderService.java
             +- OrderRepository.java

我建议您通过如下更改void main来检查控制器Bean是否正在加载:

  public static void main(String[] args) {
        ApplicationContext ctx = SpringApplication.run(CursoSpringApplication.class, args);

        System.out.println("Let's inspect the beans provided by Spring Boot:");

        String[] beanNames = ctx.getBeanDefinitionNames();
        Arrays.sort(beanNames);
        for (String beanName : beanNames) {
            System.out.println(beanName);
        }
    }
您应该在控制台中看到您的bean“basiccontroller”。 我还将把您的cursorSpring应用程序放在基本包“com.globalomnium”而不是“com.globalomnium.axis.maps”中,这样spring就可以处理基本包下面所有带注释的bean


希望它有帮助

我建议您通过如下更改void main来检查控制器Bean是否正在加载:

  public static void main(String[] args) {
        ApplicationContext ctx = SpringApplication.run(CursoSpringApplication.class, args);

        System.out.println("Let's inspect the beans provided by Spring Boot:");

        String[] beanNames = ctx.getBeanDefinitionNames();
        Arrays.sort(beanNames);
        for (String beanName : beanNames) {
            System.out.println(beanName);
        }
    }
您应该在控制台中看到您的bean“basiccontroller”。 我还将把您的cursorSpring应用程序放在基本包“com.globalomnium”而不是“com.globalomnium.axis.maps”中,这样spring就可以处理基本包下面所有带注释的bean


希望对您有所帮助

您也可以添加包结构吗?对不起,我忘了添加结构。您也可以添加包结构吗?对不起,我忘了添加结构