在springboot框架中使用xml配置很少很少,基本上都是用java注解代替了xml配置文件,为什么呢,因为springboot开发者建议我们使用java注解来实现,并不是说不支持,我们可以使用纯java代码来实现ssm框架的搭建,就是说web.xml可以不用配置了,定义一个类,实现接口就好,下面我们来看看如何实现的
创建maven工程
这里要说明一下,pom.xml还是需要的,导入相关的依赖,springmvc的,servlet的,servlet需要使用最新的4.0的,不然由于版本问题导致加载出现异常
pom.xml文件
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.zhouym</groupId>
<artifactId>java-ssm</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>war</packaging>
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.1.7.RELEASE</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>4.0.1</version>
<scope>provided</scope>
</dependency>
</dependencies>
</project>
2、创建配置类
使用配置类来代替spring以及springmvc的xml文件,只需要在类上面添加相应的注解即可
spring的配置类
package com.zhouym.javassm.config;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.FilterType;
import org.springframework.stereotype.Controller;
/**
* 〈〉
*
* @author zhouym
* @create 2019/8/5
* @since 1.0.0
*/
@Configuration
@ComponentScan(basePackages = "com.zhouym.javassm",useDefaultFilters = true,
excludeFilters = {
@ComponentScan.Filter(type = FilterType.ANNOTATION,
classes = Controller.class)})
public class SpringConfig {
}
@Configuration这个注解我们是知道的,就是配置文件的对象,所有的配置文件都会保存到这个对象中来,我们来看看@ComponentScan这个注解,点进来看看
就是说该注解会默认扫描该类所在的包下的所有注解,相当于<context:component-scan>
basePackages指定该类所在的包,useDefaultFilters = true使用默认的filters,表示扫描器会扫描包下面的所有注解,包括controller,service等等,excludeFilters表示让filters扫描除Controller注解的类以外的所有类
springmvc的配置类
package com.zhouym.javassm.config;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.FilterType;
import org.springframework.stereotype.Controller;
/**
* 〈〉
*
* @author zhouym
* @create 2019/8/5
* @since 1.0.0
*/
@Configuration
@ComponentScan(basePackages = "com.zhouym.javassm"