JavaMVC框架搭建流程整理
Maven部分
工程建立
建立工程时,选择maven-archetype-webapp类型
必要的修改
必要的目录(只是最必要的目录,非相关的没有列出)
在Project相应目录下,右键new folder创建(如不存在)
src/main/java // java 代码
src/main/config(可不设置)
src/resources // 资源配置文件
src/webapp/ // Web application Source
- test可不配置
src/test/java
src/test/resources
src/test/filters
工程编码:设为UTF-8,右键 –> Resource
必要的导入包
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>4.0.1</version>
</dependency>
Spring MVC部分
建立springContext.xml,目录src/main/resources
右键 new –> other…
beans
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:jaxws="http://cxf.apache.org/jaxws"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.0.xsd
http://cxf.apache.org/jaxws
http://cxf.apache.org/schemas/jaxws.xsd
http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd">
基本配置
<!-- 注册MVC注解驱动,让容器创建HttpMessageConverter对象 -->
<mvc:annotation-driven></mvc:annotation-driven>
<!-- 静态资源访问 -->
<mvc:resources location="/design01/images/" mapping="/design01/images/**" />
<mvc:resources location="/design01/js/" mapping="/design01/js/**" />
<mvc:resources location="/design01/css/" mapping="/design01/css/**" />
<mvc:resources location="/design01/htmlviews/" mapping="/design01/htmlviews/**" />
<!-- 搜索spring控件 -->
<context:component-scan base-package="com.martinWeb.route.Controller"></context:component-scan>
<context:component-scan base-package="com.martinWeb.route.Database.RouteItemRoad"></context:component-scan>
<context:component-scan base-package="com.martinWeb.route.Database.RouteItemCross"></context:component-scan>
<context:component-scan base-package="com.martinWeb.route.Database.basCrossMapRouteCross"></context:component-scan>
<!-- 视图页面配置 -->
<bean id="viewResolverJsp" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix">
<value>/design01/views/</value>
</property>
<property name="suffix">
<value>.jsp</value>
</property>
<property name="order" value="2"></property>
</bean>
将springContext配置文件加入web.xml搜索路径
web.xml 头web-app如下修改
<web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
web-app body中加入
<servlet>
<servlet-name>dispatcher</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:springContext.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>dispatcher</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.js</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.css</url-pattern>
</servlet-mapping>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:springContext.xml</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
必要的导入包
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>5.2.0.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>5.2.0.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.2.0.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.2.0.RELEASE</version>
</dependency>
创建springContext中使用但是未建立的目录和包
这样spring MVC就可以正常运行
MyBatis部分
这是不基于SpringMVC的Mybatis的使用方案,所以所有配置与SpringMVC没有什么关系,所有文件应该放在src/main/java目录下,不要放在其它spring mvc目录下
添加配置文件(src/main/java)
config_mybatis.properties
内容:
jdbc.driver=oracle.jdbc.driver.OracleDriver
jdbc.url=jdbc:oracle:thin:@//192.168.1.151:1521/orcl
jdbc.username=tmsystem
jdbc.password=123456
建立Mybatis包
包内添加配置文件, mybatis-config.xml
内容:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<properties resource="config_mybatis.properties">
<property name="org.apache.ibatis.parsing.PropertyParser.enable-default-value" value="true"/> <!-- 启用默认值特性 -->
</properties>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"/>
<dataSource type="UNPOOLED">
<property name="driver" value="${jdbc.driver}"/>
<property name="url" value="${jdbc.url}"/>
<property name="username" value="${jdbc.username:tmsystem}"/>
<property name="password" value="${jdbc.password:123456}"/>
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="com/martinWeb/route/Database/UserMain/UserMainMapper.xml"/>
<mapper resource="com/martinWeb/route/Database/RouteItemRoad/RouteItemRoadMapper.xml"/>
<mapper resource="com/martinWeb/route/Database/RouteItemCross/RouteItemCrossMapper.xml"/>
<mapper resource="com/martinWeb/route/Database/basCrossMapRouteCross/BascrossMapRoutecrossMapper.xml"/>
</mappers>
</configuration>
添加数据库入口文件(java)
源码可参照如下
public class myBatisEntry {
public static String resource="com/martinWeb/route/Database/mybatis-config.xml";
public void testtryMybatis() throws IOException
{
try {
InputStream inputStream=Resources.getResourceAsStream(resource);
SqlSessionFactory sqlSessionFactory=new SqlSessionFactoryBuilder().build(inputStream);
try(SqlSession session=sqlSessionFactory.openSession()){
UserMainMapper mapper=session.getMapper(UserMainMapper.class);
UserMain user=mapper.selectUserMain(1);
System.out.println("UserMain for id=1 "+user.getUserMainName()+"-"+user.getUserMainPassword());
}catch(Exception e) {
System.out.println("mybatis open "+e.toString());
}
}catch(IOException e) {
System.out.println("mybatis resource "+e.toString());
}
}
}
继承该入口类就能正常使用mybatis去访问数据库,其它内容就是标准的mybatis的应用问题,参照相关文档即可
必要导入包
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.4.5</version>
</dependency>
<dependency>
<groupId>com.oracle.ojdbc</groupId>
<artifactId>ojdbc8</artifactId>
<version>19.3.0.0</version>
</dependency>
至此,所有Mybatis的支持工作结束,程序可以正常访问数据库
今后要加入如何将Mybatis集成到springMVC内
WebService部分 – 使用CXF web Service库
修改springContext配置,加入cxf支持
beans头内加入如下项
xmlns:jaxws=http://cxf.apache.org/jaxws
xsi中加入
http://cxf.apache.org/jaxws
http://cxf.apache.org/schemas/jaxws.xsd
加入如下配置项
<import resource="classpath:META-INF/cxf/cxf.xml"></import>(这里的文件工程中没有,不是很清楚具体的使用方式)
<import resource="classpath:META-INF/cxf/cxf-servlet.xml"></import>(这里的文件工程中没有,不是很清楚具体的使用方式)
<!-- 自动扫描webservice -->
<context:component-scan base-package="com.martinWeb.route.cxf" />
<!-- 定义webservice发布接口 -->
<jaxws:endpoint id="routePlanning" implementor="#RoutePlanning" address="/RoutePlanning"></jaxws:endpoint>
建立相关包
定义发布接口
接口文件+实现文件
注意在相关接口实现文件中要加入组件声明(如下格式)
@Component("Annuniator")
@WebService(endpointInterface="com.martinWeb.annuniator.cxf.Annuniator", serviceName="Annuniator")
在Web.xml中添加相关配置
<servlet>
<servlet-name>CXFServlet</servlet-name>
<servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>CXFServlet</servlet-name>
<url-pattern>/webservice/*</url-pattern>
</servlet-mapping>
必要导入包
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-frontend-jaxws</artifactId>
<version>3.1.6</version>
</dependency>
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-core</artifactId>
<version>3.1.6</version>
</dependency>
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-transports-http</artifactId>
<version>3.1.6</version>
</dependency>
<dependency>
<groupId>org.freemarker</groupId>
<artifactId>freemarker</artifactId>
<version>2.3.22</version>
</dependency>
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.8.5</version>
</dependency>