终于有时间来学习一下spring了。
当然了,spring包含很多模块,为此我们需要一本参考书。
spring 实战

不过,首先我想先写一篇搭环境的。
因为环境确实很难搭!!!
这也是我觉得spring学习曲线高的一个原因。
OS: ubuntu 16.04
IDE: IntelliJ IDEA Ultimate
(学生可以免费使用 Ultimate )
首先新建一个springmvc项目

当然了,JDK 预先要配置好了。JDK 9 刚出没多久,JDK 10就出了,也是醉。
在src里 新建一个 demo.config的 package
并在demo.config里新建3个类
DemoWebAppInitializer.java
package demo.config;
import org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer;
public class DemoWebAppInitializer extends AbstractAnnotationConfigDispatcherServletInitializer {
@Override
protected String[] getServletMappings() {
return new String[] {"/"};
}
@Override
protected Class<?>[] getRootConfigClasses() {
return new Class<?>[] {RootConfig.class};
}
@Override
protected Class<?>[] getServletConfigClasses() {
return new Class<?>[] {WebConfig.class};
}
}
RootConfig.java
package demo.config;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.FilterType;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
@Configuration
@ComponentScan(basePackages = {"demo"}, excludeFilters = {
@ComponentScan.Filter(type = FilterType.ANNOTATION, value = EnableWebMvc.class)
})
public class RootConfig {
}
WebConfig.java
package demo.config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.ViewResolver;
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;
@Configuration
@EnableWebMvc
@ComponentScan("demo.web")
public class WebConfig extends WebMvcConfigurerAdapter {
@Bean
public ViewResolver viewResolver() {
InternalResourceViewResolver resolver = new InternalResourceViewResolver();
resolver.setPrefix("/WEB-INF/views/");
resolver.setSuffix(".jsp");
resolver.setExposeContextBeansAsAttributes(true);
return resolver;
}
@Override
public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) {
super.configureDefaultServletHandling(configurer);
configurer.enable();
}
}
这样就做了一个最小但可用的Spring MVC 配置
接下来写控制器
新建一个demo.web的package
在demo.web里新建一个HomeController.java
package demo.web;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
@Controller
public class HomeController {
@RequestMapping(value = "/", method = RequestMethod.GET)
public String home() {
return "home";
}
}
由WebConfig.java resolver.setPrefix("/WEB-INF/views/"); 可知
views肯定是这里的
所以在WEB-INF里新建一个 views 文件夹
然后再新建一个home.jsp
比如可以是这样
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
Hello Spring MVC
</body>
</html>
代码编写部分已经全部完毕,接下来动动鼠标。
删除web文件夹下的
index.jsp
因为已经通过了 DemoWebAppInitializer.java 处理 /
将web.xml修改成这样
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
version="4.0">
</web-app>
因为已经自动配置了,但是web.xml还得呆在那里。
然后系统自动生成的 applicationContext.xml 和 dispatcher-servlet.xml 删了就好。
参考文件结构

File -> Project Structure -> Problems
点fix修复错误
Run -> Tomcat Server ->
Server

Tomcat 要提前下载好
Deployment

然后,还是不能run,因为还缺少javax.servlet 包

这样来一手
然后就可以run了

万事开头难。
把环境配好,后面的就简单了。
下面简单的捋一捋逻辑。
DemoWebAppInitializer
这个类继承了 AbstractAnnotationConfigDispatcherServletInitializer
然后,只要这个类存在,那就统统给你配置好了。
这个类注入了
RootConfig和WebConfig
RootConfig指定了要扫描的package
WebConfig规定了视图的路径
demo.web里面可以放控制器
通过注解来处理路由和请求,然后返回一个String,这个String,也就指定了将由视图来进行呈现。
@RequestMapping(value = "/", method = RequestMethod.GET)
public String home() {
return "home";
}
这样这个基本的demo就完成了。
本文介绍了如何在Ubuntu 16.04上使用IntelliJ IDEA Ultimate搭建Spring MVC环境。首先确保JDK配置正确,然后创建项目,配置Spring MVC的基本结构,包括DemoWebAppInitializer、RootConfig、WebConfig以及控制器。接着创建视图文件夹和jsp页面,处理web.xml,解决缺少的javax.servlet包问题。最后通过Tomcat部署运行。搭建过程虽然复杂,但完成后的环境将便于后续的Spring开发。
1016

被折叠的 条评论
为什么被折叠?



