Spring + Maven + Intellij + HelloWorld

时间:2017-06-11 11:41:40

标签: java spring maven tomcat intellij-idea

我在搜索领域有一些谷歌关于我的问题,但我没有得到解决方案。在spring项目(不启动)中通过maven创建intellij想法我设置了所有东西(见下文),如tomcat配置,java配置简单helloWorld等...但是:我得到的结果只有爆炸战争而不是欢迎目录:我在localhost:8080(不是在localhost:8080 / welcome)看到它。 如果我将工件设置为战争,我会得到通常的tomcat主页,而不是我的项目。

下面的代码片段:

控制器:

package com.controller;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
public class HomeController {

    @RequestMapping("/")
    public String welcome(Model model){
        model.addAttribute("hello", "Hello");
        model.addAttribute("anyone", "anyone");
        return "welcome";
    }
}

WebApplicationContextConfig:

package com.config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.DefaultServletHandlerConfigurer;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
import org.springframework.web.servlet.view.InternalResourceViewResolver;
import org.springframework.web.servlet.view.JstlView;


@Configuration
@EnableWebMvc
@ComponentScan("com")
public class WebAppContextConfig extends WebMvcConfigurerAdapter {

    @Override
    public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) {
        configurer.enable();
    }

    @Bean
    public InternalResourceViewResolver getInternalViewResolver(){
        InternalResourceViewResolver resolver = new InternalResourceViewResolver();
        resolver.setViewClass(JstlView.class);
        resolver.setPrefix("/pages/");
        resolver.setSuffix(".jsp");

        return resolver;
    }
}

package com.config; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.config.annotation.DefaultServletHandlerConfigurer; import org.springframework.web.servlet.config.annotation.EnableWebMvc; import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter; import org.springframework.web.servlet.view.InternalResourceViewResolver; import org.springframework.web.servlet.view.JstlView; @Configuration @EnableWebMvc @ComponentScan("com") public class WebAppContextConfig extends WebMvcConfigurerAdapter { @Override public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) { configurer.enable(); } @Bean public InternalResourceViewResolver getInternalViewResolver(){ InternalResourceViewResolver resolver = new InternalResourceViewResolver(); resolver.setViewClass(JstlView.class); resolver.setPrefix("/pages/"); resolver.setSuffix(".jsp"); return resolver; } }

DispatcherServletInitializer:

的pom.xml:

package com.config;

import org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer;


public class DispatcherServletInitializer extends AbstractAnnotationConfigDispatcherServletInitializer {

    @Override
    protected Class<?>[] getRootConfigClasses() {
        return null;
    }

    @Override
    protected Class<?>[] getServletConfigClasses() {
        return new Class[]{WebAppContextConfig.class};
    }

    @Override
    protected String[] getServletMappings() {
        return new String[]{"/"};
    }
}

Run configuration window:

Folder structure

1 个答案:

答案 0 :(得分:0)

我建议你不要打扰自己使用Spring配置文件,并使用已经为你配置的Spring Boot。

例如,这个'hello world'样本应该做你想做的事:https://github.com/pgrimard/spring-boot-hello-world

另外,请考虑http://start.spring.io/生成项目的骨架。