步骤
1 创建一个maven工程
坐标 模块名 版本
2 pom文件导包
package 打成war包
<packaging>war<packaging>
属性里面设置编码格式UTF-8,设置maven工程版本1.8
<properties>
<project.built.sourceEncoding>UTF-8</project.built.sourceEncoding>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
</properties>
导入springmvc...
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.1.5.RELEASE</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.0.1</version>
<scope>provided</scope> <!--通过tomcat容器运行-->
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.8</version>
</dependency>
</denpendencies>
导入插件
<bulid>
<finalName>xxx-springmvc</finalName>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.2</version>
</plugin>
<plugin>
<groupId>org.maven.plugins</groupId>
<artifactId>maven.compiler.plugin</artifactId>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
<plugin>
<artifactId>maven.resources.plugin</artifactId>
<configuration>
<encoding>UTF-8</encoding>
<useDefaultDelimiters>1.8</useDefaultDelimiters>
<resources>
<resource>
<director>src/main/resources</director>
<filter>true</filter>
<includes>
<include>**/*</include>
<includes>
</resource>
<resource>
<director>src/main/java</director>
<includes>
<include>**/*.xml</include>
<includes>
</resource>
</resources>
</configuration>
</plugin>
</plugins>
</pluginManagement>
</bulid>
3 在src/main/java下 创建java包 工程名+模块 比如 com.公司名.项目名.模块名.config 在config包配置springmvc环境
由于是基于servlet3.0开发,所以就不用比采用xml的配置,使用java配置类的形式进行配置。
spring容器的配置
在config包下定义ApplicationConfig.java类,对应web.xml中ContextLoaderListenerde 配置
@Configuratoion
@ComponentScan(basePackages="com.公司名.项目名.模块名",exciudeFilters={@ComponentScan.Filter(type=FilterType.ANNOTATION,value=Controller.class)})
public class ApplicationConfig(){//相当于ApplicationContext.xml
//定义数据源 事务管理器 业务bean等
}
servletContext容器的配置
在config包下定义webConfig.java类,对应DispatcherServlet的配置
@Configuratoion
@EnableWebMvc
@ComponentScan(basePackages="com.公司名.项目名.模块名",includeFilters={@ComponentScan.Filter(type=FilterType.ANNOTATION,value=Controller.class)})
public class WebConfig implements WebMvcConfigurer(){//相当于springmvc.xml文件
//视图解析器
@Bean
public InternalResourceViewResolver vewResolver (){
InternalResourceViewResolver vewResolver = new InternalResourceViewResolver()
vewResolver.setPrefix("/WEB-INF/view");//在src/main下创建文件夹webapp在webapp下创建WEB-INF,在WEB-INF下创建view
vewResolver.setSuffix(".jsp");
return vewResolver ;
}
@Override
public void addViewControlers(viewControllerRegistry registry){
registry.addViewController("/").setViewName("login");//意思是访问“/”,就会跳转到 login.jsp
}
}
4 加载配置类(加载spring容器)
定义一个init包,在init包下定义SpringApplicationInitIzalizer初始化类,实现WebApplicationInitizalizer接口,spring容器启动时会加载实现WebApplicationInitizalizer接口的所有类
public class SpringApplicationInitIzalizer extends AbstractAnnotationConfigDispatcherServletInitializer{
@Override
protected Class<?>[] getRootConfigClasses(){
return new Class<?>[]{ApplicationConfig.class};//指定rootContext的配置类 加载spring容器
}
@Override
protected Class<?>[] getServletConfigClasses(){
return new Class<?>[]{Webconfig.class};//指定ServletContext的配置类
}
@Override
protected Class<?>[] getServletMappings(){
return new Class<?>[]{“/”};//加载url-mapping
}
}
以上基于servlet3.0的工程搭建完成。
原文:https://www.cnblogs.com/dengw125792/p/12271423.html