1、吐槽部分
现在做的这个blog项目用SSM框架,虽然环境别人都给搭建完毕了。
但是作为一个技术者,怎么能不会搭建环境呢?
Spring就提供了javaconfig的方式启动容器,在这里我们搭建一个零配置的SSM的环境;
只不过mybatis的一些高级应用暂时还需要少量的配置文件来实现(这个道听途说);
Spring boot以后基本不上不用配置文件了,xml配置你需要懂得其原理就够了,为了理解框架是如何工作的个人觉得用javaconfig注解的方式更加深刻;
关于SSM框架整合,网上大多数都是用xml和maven的方式,这里我们用最简单的eclipse做一个简短的demo;
2、我的搭建经历
搭建SSM最重要的就是Jar包,缺失jar会怎么样你知道的,关于其中的每个jar包的作用我们参考下面链接:
我的lib结构稍后我再给补充上;
为了更容易实现基于javaconfig的SSM框架,开发环境如下:
Web 应用服务器:tomcat8.5;
数据库:Oracle;
开发工具:PLSQL Developer 12 (64 bit),eclipse;
JDK:1.8;
关于Spring的jar包,没有找到Spring.jar包,我是从官网下载的
Spring
目录结构
src
spittr.bean//包名
Spitter.java //类名
spittr.config //包名
DataConfig.java
RootConfig.java
SpitterWebInitializer.java
WebConfig.java//类名
spittr.mapper
SpitterMapper.java//接口
spittr.web
HomeController.java
SpitterController.java
首先设置Spring的启动,需要SpitterWebInitializer.java、WebConfig.java、RootConfig.java
packagespittr.config;importorg.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer;/** 在Servlet3.0环境以后,容器会在类路径中查找实现javax.servlet.ServletContainerInitializer接口的类;
* Spring提供了这个接口的实现类SpringServletContainerInitializer,
* 反过来这个类又去查找实现WebApplicationInitializer接口的类,并将配置任务交给他完成。
* 而Spring3.2引入了WebApplicationInitializer的实现类AbstractAnnotationConfigDispatcherServletInitializer;
* 而我们的SpitterWebInitializer继承了AbstractAnnotationConfigDispatcherServletInitializer,
* 因此我们部署到Servlet3.0容器中的时候,容器会自动发现他,并用它来配置Servlet上下文。*/
public class SpitterWebInitializer extendsAbstractAnnotationConfigDispatcherServletInitializer {/** getServletMappings(),它会将一个或者多个路径映射到DispatcherServlet,
* 本例中,他映射的是"/",这表示他会是应用默认的Servlet。他会处理进入该应用的所有请求。*/@OverrideprotectedString[] getServletMappings() {return new String[] { "/"};
}/** DispatcherServlet启动时,他会创建Spring应用的上下文,并加载配置文件或配置类中的所有生命的bean,
* 我们要求DispatcherServlet加载应用上下文时,加载我们在WebConfig中的配置bean。*/@Overrideprotected Class>[] getServletConfigClasses() {return new Class>[] { WebConfig.class};
}/** 但是在Spring Web中应用中,通常还会有另一个上下文,他是由ContextLoaderListener创建的,
* 我们希望DispatcherServlet加载Web组件的bean,如控制器,视图解析器以及处理器映射,
* ContextLoaderListener要加载应用中的其他bean,即RootConfig来实现。*/@Overrideprotected Class>[] getRootConfigClasses() {return new Class>[] { RootConfig.class};
}
}
SpitterWebInitializer.java
1 packagespittr.config;2
3 importorg.springframework.context.annotation.Bean;4 importorg.spring