使用纯java配置SSM(一)

在SpringBoot项目中,一般来说是不存在xml配置,这并不是SpringBoot不支持,而是不推荐使用xml配置;SpringBoot中大量的自动化配置都是通过java配置来实现的的;在项目中可以使用纯java配置来搭建一个SSM环境,不需要使用任何的xml配置(所有的xml配置都不需要);要求:Tomcat必须在7版本以上;

1:创建工程(Maven工程);添加SpringMVC的依赖和servlet的依赖(版本要高);

在这里插入图片描述

<dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>5.1.6.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
            <version>4.0.1</version>
        </dependency>

2:Springconfig:配置

/**
 * @Configuration 这是一个配置类,这个配置类,类似:ApplicationContext.xml
 * @ComponentScan 表示扫描;里面的属性和xml配置中的属性都是对应的,useDefaultFilters表示使用默认的过滤器,
 * 然后又除去Controller注解,在Spring容器中扫描除了Controller之外的其他所有的Bean
 */
@Configuration
@ComponentScan(basePackages = "com.Spring_Botssm",useDefaultFilters = true,excludeFilters = {@ComponentScan.Filter(type =
FilterType.ANNOTATION,classes = Controller.class)})
public class SpringConfig {
}

3:SpringMVCConfig配置


//配置扫描时要配置对Spring的扫描否则会报错(这里已经配置了)

@Configuration
@ComponentScan(basePackages = "com.Spring_Botssm",useDefaultFilters = false,includeFilters =
        {@ComponentScan.Filter(type = FilterType.ANNOTATION,classes = Controller.class),
                @ComponentScan.Filter(type = FilterType.ANNOTATION,classes = Configuration.class)})
public class SpringMVCConfig {

}

这里没有配置SpringMVC的其他配置,即:视图解析器,JSON解析,文件上传……等;简单的配置了一下;

4: WebInit配置:

/**
 * webInit作用类似web.xml ,这个类须实现WebApplicationInitializer接口,实现其中的方法,
 * 启动时,onStartup方法会被自动执行,可以在这个方法中初始化;例如初始化SpringMVC容器,添加过滤器,添加Listener,减价Servlet
 */
public class WebInit implements WebApplicationInitializer {
    public void onStartup(javax.servlet.ServletContext servletContext) throws ServletException {
        //加载SpringMVC的配置文件
        AnnotationConfigWebApplicationContext ctx=new AnnotationConfigWebApplicationContext();
        ctx.register(SpringMVCConfig.class);
        //添加DispatcherServlet
        ServletRegistration.Dynamic springmvc = servletContext.addServlet("springmvc",new DispatcherServlet(ctx));
        //给DispatcherServlet添加映射路径
        springmvc.addMapping("/");
        //给DispatcherServlet添加启动时机
        springmvc.setLoadOnStartup(1);
    }
}

5: Controller类:

@RestController
public class controller {
    @Autowired
    HelloService helloService;
    @GetMapping("/hello")
    public String hello(){
        return helloService.hello();
    }

}

HelloServlet类:

@Service
public class HelloService {

    public String hello(){
       return "hello";
    }
}

在这里插入图片描述
启动项目成功;
这里一个简单的使用纯java配置的SSM就完成了;

上面完成了一个简单的SSM配置但是如何访问静态资源呢?请接着看

/*@ComponentScan(basePackages = "com.Spring_Bootssm",useDefaultFilters = false,includeFilters =
        {@ComponentScan.Filter(type = FilterType.ANNOTATION,classes = Controller.class),
                @ComponentScan.Filter(type = FilterType.ANNOTATION,classes = Configuration.class)})*/
@ComponentScan(basePackages = "com.Spring_Bootssm")
public class SpringMVCConfig extends WebMvcConfigurationSupport {
   protected void addResourceHandlers(ResourceHandlerRegistry registry){
       registry.addResourceHandler("/js/**").addResourceLocations("classpath:/");
   }
}

6.1:继承WebMvcConfigurationSupport 类重写方法addResourceHandlers这个方法汇总配置静态资源过滤器,这里静态资源放在resources目录下,所以源资源泪痣为classpath/,也可以放在webapp目录下,此时只需要修改配置中的资源位置即可,若采用java来配置SSM环境,一般可不用放在webapp目录下,除非使用jsp做页面模板,否则可以忽略webapp目录;

在这里插入图片描述
这里hello.js随便写了一些东西:

hello js helloSpring boot

启动项目:
在这里插入图片描述
就可以访问hello的内容了;

6.2 视图解析器的配置:
java配置:
为项目添加webapp目录:按 F4
在这里插入图片描述

在这里插入图片描述
后点击yes就可以创建出webapp目录了,这里不要自己手动创建防止出错:
在这里插入图片描述
添加依赖:

		<dependency>
            <groupId>javax.servlet.jsp</groupId>
            <artifactId>javax.servlet.jsp-api</artifactId>
            <version>2.3.3</version>
        </dependency>

创建HelloController 类:

在这里插入图片描述

@Controller

public class HelloController {
    @GetMapping("/hello2")
    public String hello(){
        return "hello";
    }
}

创建 hello.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
<h1>hello_jsp</h1>
</body>
</html>

启动项目:
在这里插入图片描述
就可以访问jsp成功;

猜你喜欢

转载自blog.csdn.net/qqxm1/article/details/90611077