SSM框架搭建整合
基于IDEA整合Spring,SpringMVC,Mybatis。
这是一段···(不可描述)的路程
首先附上文件结构图:
主要是三层,Dao层,Service层,Controller层。
由于都是面向接口编程,耦合性更低。
Dao层只有Ixxdao 接口,他的实现是通过Mybatis的map配置文件代理注入的,查看Mybatis配置文件就可以知道。
而Service接口只负责声明服务,serviceImpl则用来实现具体的业务操作。当然注入Dao接口是在serviceImpl中注入的。
然后再在Controller中注入Service接口,注意 这里是注入接口,然后用注解声明具体的实现类
下面附上这几层的代码截图:
整体结构大概就是这样子,下面对配置文件进行说明。
Web.xml
最基础的配置:
1.在web.xml配置监听器ContextLoaderListener
ContextLoaderListener的作用就是启动Web容器时,自动装配ApplicationContext的配置信息。因为它实现了 ServletContextListener这个接口,在web.xml配置这个监听器,启动容器时,就会默认执行它实现的方法。
2.部署applicationContext的xml文件
如何部署applicationContext的xml文件,如果在web.xml中不写任何参数配置信息,默认的路径是”/WEB-INF /applicationContext.xml,在WEB-INF目录下创建的xml文件的名称必须是applicationContext.xml。 如果是要自定义文件名可以在web.xml里加入contextConfigLocation这个context参数:
定义WebAppliactionContext上下文中的bean
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
/WEB-INF/classes/applicationContext-*.xml
</param-value>
</context-param>
3.定义DispatcherServlet 前段处理器,用于控制
<servlet>
<servlet-name>court</servlet-name>
<servlet-class>
org.springframework.web.servlet.DispatcherServlet
</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/springmvc.xml</param-value>
<!---不配置的话 默认是court-servlet.xml -->
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>court</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
这里的contextConfigLocation (即springMVC的配置文件中)用于配置控制器的参数,比如设置映射页面的前缀后缀等
最基本的web.xml中配置完这三个就算完成了
Springmvc.xml
<mvc:annotation-driven />
首先需要介入这个注解用于自动启动注解功能。
同时会自动注册DefaultAnnotationHandlerMapping与AnnotationMethodHandlerAdapter 两个bean,是spring MVC为@Controllers分发请求所必须的。
并提供了:数据绑定支持,@NumberFormatannotation支持,@DateTimeFormat支持,@Valid支持,读写XML的支持(JAXB),读写JSON的支持(Jackson)。
然后就是添加自动扫描Controller包
(这里主要配置拦截器,applicationContext中扫描所有包)
以及解析器的前后缀
applicationContext.xml
MyBatisConfig.xml
MyBatis需要配置的内容可以去官网上看例子。
总结:
为什么 pom中
<!-- Spring MVC-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>4.1.6.RELEASE</version>
<!--<scope>provided</scope>-->
</dependency>
加了 provided 运行就有问题,当然有问题tomcat本身不提供web包,只有tomcat已包含的包,可以使用provide
要学会根据错误提示自己寻找问题所在,并解决。
错误栈:最下面的是引起错误的起源。
根据错误 Debug 找起不来的原因,如果是ClassNotFind就在pom中导入相应的包
很重要的一点:经常访问资源文件,访问不到 很头疼!!!
路径访问:maven 打包时,默认只会把resource文件夹下的资源文件打进去的,classes是编译后的文件,所以我们可以把配置文件都放在resource下, 到时候用classpath 就能访问到。能不能访问,看target/classes中有没有 就知道了
Test 是用来测试已编译的代码的,就是classes里面所有的资源
target中, classes是你的工程编译后的类,里面没有第三方包
spring是 spring.war 的解压缩后的包,里面含有第三方包,当然也有个classes
当然如果需要把其他位置的资源放到classes中,需要另外配置。最好就是 WEN-INF下就放 web.xml 其余的都放resource中
整个工程代码:github
上一篇: 基于php的微信公众平台开发入门实例
下一篇: Zabbix自带模板监控MySQL服务
推荐阅读
-
(Mac) IDEA上搭建TestNG框架
-
使用maven整合Spring+SpringMVC+Mybatis框架详细步骤(图文)
-
详解JAVAEE——SSH三大框架整合(spring+struts2+hibernate)
-
在Mac OS上搭建PHP的Yii框架及相关测试环境
-
搭建ssh框架的基本步骤(ssh框架整合实战教程)
-
maven搭建ssm框架步骤(用eclipse搭建ssm框架)
-
ASP.NET Core应用中与第三方IoC/DI框架的整合
-
EpiiAdmin 开源的php交互性管理后台框架, 让复杂的交互变得更简单!Phper快速搭建交互性平台的开发框架,基于Thinkphp5.1+Adminlte3.0+Require.js。
-
python自动化框架搭建过程(分享python接口自动化框架有哪些)
-
python自动化框架搭建过程(分享python接口自动化框架有哪些)