Spring MVC之最简项目配置(全注解)

Environment:

Java 1.8.0_131
maven 3.5.0
InteliJ IDEA 2017.1.4
tomcat 8.5.15


简介

Spring 的目的在于简化Java EE应用程序的开发,依赖注入和AOP是它的核心。使用Spring可以大大的简化开发,提高效率。
这篇文章记录一下Spring MVC的全java配置方式。
Spring主要有两种配置方式:

在XML中配置
使用Java配置

个人觉得使用Java配置更加好一些,它更加强大且类型安全。

配置方法

Java配置可以细分为两种方式:显示配置和隐式配置。隐式配置中,Spring通过两个角度实现自动化装配:

组件扫描:Spring自动发现应用上下文中创建的bean
自动装配:Spring自动满足bean之间的依赖。

更详细的不多说了。

新建工程

  1. 使用mave新建一个工程,并使用模板
    Spring MVC之最简项目配置(全注解)_第1张图片

  2. Spring MVC之最简项目配置(全注解)_第2张图片
  3. 可以根据自己的情况修改maven的配置和仓库
    Spring MVC之最简项目配置(全注解)_第3张图片
    4.
    Spring MVC之最简项目配置(全注解)_第4张图片

  4. 新建工程后,等待模板加载完毕以及maven库的加载,加载完成后为
    Spring MVC之最简项目配置(全注解)_第5张图片

  5. 建成后在pom.xml文件中添加依赖的包
        <dependency>
            <groupId>org.springframeworkgroupId>
            <artifactId>spring-webmvcartifactId>
            <version>4.3.8.RELEASEversion>
        dependency>

        
        <dependency>
            <groupId>javax.servletgroupId>
            <artifactId>javax.servlet-apiartifactId>
            <version>3.1.0version>
        dependency>

开始配置

Spring的运行流程如下图所示
Spring MVC之最简项目配置(全注解)_第6张图片
也就是我们需要配置上面这六个部分:

DispatcherServlet: 可以认为Spring MVC是从这里开始正式运行的,作为中心
HandlerMapping: 也就是路由,这个在写控制类的时候使用注解就配置好了,非常简单
Controller:这个就是MVC中的C,逻辑控制
模型及视图名:视图名就是JSP文件名,模型就是向视图中传入的数据
ViewResolver:视图解析器,用来解析视图
View:也就是所写的JSP解析后返回浏览器的视图

其中handlerMapping、Controller、模型及视图名最简单的情况下都在一个Controller类中配置就可以了,View也就是写JSP文件。

配置DispatcherServlet和ViewResolver

新建一个java文件夹用来存放java文件,并设置为源文件目录
Spring MVC之最简项目配置(全注解)_第7张图片

新建AppInitilizer.java 和WebConfig.java

// AppInitializer .java

public class AppInitializer extends AbstractAnnotationConfigDispatcherServletInitializer {
    protected Class[] getRootConfigClasses() {
        return new Class[0];
    }

    protected Class[] getServletConfigClasses() {
        return new Class[] { WebConfig.class };
    }

    /**
     * 将DispatcherServlet映射到"/"
     */
    protected String[] getServletMappings() {
        return new String[] { "/" };
    }
}

// WebConfig.java

@Configuration
@EnableWebMvc
@ComponentScan("me.firstsnow.controller")
public class WebConfig extends WebMvcConfigurerAdapter {

    /**
     * 配置JSP视图解析器,根据控制类中返回的视图名解析视图
     * @return 视图解析器
     */
    @Bean
    public ViewResolver viewResolver() {
        InternalResourceViewResolver viewResolver = new InternalResourceViewResolver();

        // 视图放在 webapp/WEB-INF/views下
        viewResolver.setPrefix("/WEB-INF/views/");
        viewResolver.setSuffix(".jsp");
        viewResolver.setExposeContextBeansAsAttributes(true);

        return viewResolver;
    }

    /**
     * 配置静态资源的处理
     */
    @Override
    public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) {
        configurer.enable();
    }
}

将视图放到WEB-INF目录下,禁止被直接访问
现在的目录结构为:
Spring MVC之最简项目配置(全注解)_第8张图片

配置Controller类

写一个最简单的首页的Controller类放在controller目录中

@Controller
@RequestMapping(value = "/")
public class HomeController {

    /**
     * GET方法访问
     * @return index --> WEB_INF/views/index.jsp
     */
    @RequestMapping(method = RequestMethod.GET)
    public String home() {
        return "index";
    }
}

最后配置tomcat部署
Spring MVC之最简项目配置(全注解)_第9张图片
Spring MVC之最简项目配置(全注解)_第10张图片
Spring MVC之最简项目配置(全注解)_第11张图片

最后运行,看到index.jsp中渲染的内容就成功了。

你可能感兴趣的:(JavaWeb)