ssm框架搭建(maven)

xiaoxiao2021-02-28  30

一.项目的整体目录结构

二.构建Maven项目

三、pom文件

<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/maven-v4_0_0.xsd">    <modelVersion>4.0.0</modelVersion>    <groupId>com.kostal</groupId>    <artifactId>V2X2</artifactId>    <packaging>war</packaging>    <version>0.0.1-SNAPSHOT</version>    <name>V2X2</name>    <url>http://maven.apache.org</url>   <properties>            <!-- spring版本号 -->            <spring.version>4.2.0.RELEASE</spring.version>            <!-- mybatis版本号 -->            <mybatis.version>3.2.6</mybatis.version>            <!-- log4j日志文件管理包版本 -->            <slf4j.version>1.7.7</slf4j.version>            <log4j.version>1.2.17</log4j.version>        </properties>            <dependencies>            <dependency>                <groupId>junit</groupId>                <artifactId>junit</artifactId>                <version>4.11</version>                <!-- 表示开发的时候引入,发布的时候不会加载此包 -->                <scope>test</scope>            </dependency>            <!-- spring核心包 -->            <dependency>                <groupId>org.springframework</groupId>                <artifactId>spring-core</artifactId>                <version>${spring.version}</version>            </dependency>                <dependency>                <groupId>org.springframework</groupId>                <artifactId>spring-web</artifactId>                <version>${spring.version}</version>            </dependency>            <dependency>                <groupId>org.springframework</groupId>                <artifactId>spring-oxm</artifactId>                <version>${spring.version}</version>            </dependency>            <dependency>                <groupId>org.springframework</groupId>                <artifactId>spring-tx</artifactId>                <version>${spring.version}</version>            </dependency>                <dependency>                <groupId>org.springframework</groupId>                <artifactId>spring-jdbc</artifactId>                <version>${spring.version}</version>            </dependency>                <dependency>                <groupId>org.springframework</groupId>                <artifactId>spring-webmvc</artifactId>                <version>${spring.version}</version>            </dependency>            <dependency>                <groupId>org.springframework</groupId>                <artifactId>spring-aop</artifactId>                <version>${spring.version}</version>            </dependency>                <dependency>                <groupId>org.springframework</groupId>                <artifactId>spring-context-support</artifactId>                <version>${spring.version}</version>            </dependency>                <dependency>                <groupId>org.springframework</groupId>                <artifactId>spring-test</artifactId>                <version>${spring.version}</version>            </dependency>            <!-- mybatis核心包 -->            <dependency>                <groupId>org.mybatis</groupId>                <artifactId>mybatis</artifactId>                <version>${mybatis.version}</version>            </dependency>            <!-- mybatis/spring包 -->            <dependency>                <groupId>org.mybatis</groupId>                <artifactId>mybatis-spring</artifactId>                <version>1.2.2</version>            </dependency>            <!-- 导入java ee jar 包 -->            <dependency>                <groupId>javax</groupId>                <artifactId>javaee-api</artifactId>                <version>7.0</version>            </dependency>            <!-- 导入Mysql数据库链接jar包 -->            <dependency>                <groupId>mysql</groupId>                <artifactId>mysql-connector-java</artifactId>                <version>5.1.30</version>           </dependency>            <!-- 导入dbcp的jar包,用来在applicationContext.xml中配置数据库 -->            <dependency>                <groupId>commons-dbcp</groupId>                <artifactId>commons-dbcp</artifactId>                <version>1.2.2</version>            </dependency>            <!-- JSTL标签类 -->            <dependency>                <groupId>jstl</groupId>                <artifactId>jstl</artifactId>                <version>1.2</version>            </dependency>            <!-- 日志文件管理包 -->            <!-- log start -->            <dependency>                <groupId>log4j</groupId>                <artifactId>log4j</artifactId>                <version>${log4j.version}</version>            </dependency>                                    <!-- 格式化对象,方便输出日志 -->            <dependency>                <groupId>com.alibaba</groupId>                <artifactId>fastjson</artifactId>                <version>1.1.41</version>            </dependency>                <dependency>                <groupId>org.slf4j</groupId>                <artifactId>slf4j-api</artifactId>                <version>${slf4j.version}</version>            </dependency>                <dependency>                <groupId>org.slf4j</groupId>                <artifactId>slf4j-log4j12</artifactId>                <version>${slf4j.version}</version>            </dependency>            <!-- log end -->            <!-- 映入JSON -->            <dependency>                <groupId>org.codehaus.jackson</groupId>                <artifactId>jackson-mapper-asl</artifactId>                <version>1.9.13</version>            </dependency>            <!-- 上传组件包 -->            <dependency>                <groupId>commons-fileupload</groupId>                <artifactId>commons-fileupload</artifactId>                <version>1.3.1</version>            </dependency>            <dependency>                <groupId>commons-io</groupId>                <artifactId>commons-io</artifactId>                <version>2.4</version>            </dependency>            <dependency>                <groupId>commons-codec</groupId>                <artifactId>commons-codec</artifactId>                <version>1.9</version>            </dependency>        </dependencies>      <build>     <plugins>       <plugin>           <artifactId>maven-compiler-plugin</artifactId>           <configuration>               <source>1.8</source>               <target>1.8</target>           </configuration>       </plugin>       <plugin>           <artifactId>maven-war-plugin</artifactId>           <version>2.4</version>           <configuration>               <version>3.0</version>           </configuration>       </plugin>   </plugins>       <finalName>V2X</finalName>    </build>  </project>

四、web.xml的配置,包括字符集的设置,Springmvc的分发器的配置,加载Spring文件

<?xml version="1.0" encoding="UTF-8"?><web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0">  <display-name>Archetype Created Web Application</display-name>  <context-param>    <param-name>contextConfigLocation</param-name>    <param-value>classpath:spring-mybatis.xml</param-value>  </context-param>  <filter>    <filter-name>encodingFilter</filter-name>    <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>    <async-supported>true</async-supported>    <init-param>      <param-name>encoding</param-name>      <param-value>UTF-8</param-value>    </init-param>  </filter>  <filter-mapping>    <filter-name>encodingFilter</filter-name>    <url-pattern>/*</url-pattern>  </filter-mapping>  <listener>    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>  </listener>  <listener>    <listener-class>org.springframework.web.util.IntrospectorCleanupListener</listener-class>  </listener>  <servlet>    <servlet-name>SpringMVC</servlet-name>    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>    <init-param>      <param-name>contextConfigLocation</param-name>      <param-value>classpath:spring-mvc.xml</param-value>    </init-param>    <load-on-startup>1</load-on-startup>    <async-supported>true</async-supported>  </servlet>  <servlet-mapping>    <servlet-name>SpringMVC</servlet-name>    <url-pattern>/</url-pattern>  </servlet-mapping>  <welcome-file-list>    <welcome-file>/index.jsp</welcome-file>  </welcome-file-list></web-app>

五.在rousources建立相关的配置文件

5.1 数据库的信息配置(注意不能有空格)

jdbc.driver=com.mysql.jdbc.Driver jdbc.url=jdbc:mysql://localhost:3306/v2x?useUnicode=true&characterEncoding=utf8 jdbc.username=root jdbc.password=366366

5.2 日志信息配置

[html]  view plain  copy #\u5B9A\u4E49LOG\u8F93\u51FA\u7EA7\u522B    log4j.rootLogger=INFO,Console,File    #\u5B9A\u4E49\u65E5\u5FD7\u8F93\u51FA\u76EE\u7684\u5730\u4E3A\u63A7\u5236\u53F0    log4j.appender.Console=org.apache.log4j.ConsoleAppender    log4j.appender.Console.Target=System.out    #\u53EF\u4EE5\u7075\u6D3B\u5730\u6307\u5B9A\u65E5\u5FD7\u8F93\u51FA\u683C\u5F0F\uFF0C\u4E0B\u9762\u4E00\u884C\u662F\u6307\u5B9A\u5177\u4F53\u7684\u683C\u5F0F    log4j.appender.Console.layout = org.apache.log4j.PatternLayout    log4j.appender.Console.layout.ConversionPattern=[%c] - %m%n        #\u6587\u4EF6\u5927\u5C0F\u5230\u8FBE\u6307\u5B9A\u5C3A\u5BF8\u7684\u65F6\u5019\u4EA7\u751F\u4E00\u4E2A\u65B0\u7684\u6587\u4EF6    log4j.appender.File = org.apache.log4j.RollingFileAppender    #\u6307\u5B9A\u8F93\u51FA\u76EE\u5F55    log4j.appender.File.File = logs/ssm.log    #\u5B9A\u4E49\u6587\u4EF6\u6700\u5927\u5927\u5C0F    log4j.appender.File.MaxFileSize = 10MB    # \u8F93\u51FA\u6240\u4EE5\u65E5\u5FD7\uFF0C\u5982\u679C\u6362\u6210DEBUG\u8868\u793A\u8F93\u51FADEBUG\u4EE5\u4E0A\u7EA7\u522B\u65E5\u5FD7    log4j.appender.File.Threshold = ALL    log4j.appender.File.layout = org.apache.log4j.PatternLayout    log4j.appender.File.layout.ConversionPattern =[%p] [%d{yyyy-MM-dd HH\:mm\:ss}][%c]%m%n   

5.3 SpringMVC的配置,主要包括控制器的扫描路径,视图的配置,上传配置等

<?xml version="1.0" encoding="UTF-8"?>     <beans xmlns="http://www.springframework.org/schema/beans"         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"         xmlns:context="http://www.springframework.org/schema/context"         xmlns:mvc="http://www.springframework.org/schema/mvc"         xsi:schemaLocation="http://www.springframework.org/schema/beans                               http://www.springframework.org/schema/beans/spring-beans-3.1.xsd                               http://www.springframework.org/schema/context                               http://www.springframework.org/schema/context/spring-context-3.1.xsd                               http://www.springframework.org/schema/mvc                               http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd">         <!-- 自动扫描该包,使SpringMVC认为包下用了@controller注解的类是控制器 -->         <context:component-scan base-package="com.kostal.control" />         <!--避免IE执行AJAX时,返回JSON出现下载文件 -->         <!-- <bean id="mappingJacksonHttpMessageConverter"             class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter">             <property name="supportedMediaTypes">                 <list>                     <value>text/html;charset=UTF-8</value>                 </list>             </property>         </bean>   -->     <!-- 启动SpringMVC的注解功能,完成请求和注解POJO的映射 -->         <!-- <bean             class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">             <property name="messageConverters">                 <list>                     <ref bean="mappingJacksonHttpMessageConverter" /> JSON转换器                 </list>             </property>         </bean>     -->     <!-- 定义跳转的文件的前后缀 ,视图模式配置-->         <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">             <!-- 这里的配置我的理解是自动给后面action的方法return的字符串加上前缀和后缀,变成一个 可用的url地址 -->             <property name="prefix" value="/WEB-INF/jsp/" />             <property name="suffix" value=".jsp" />         </bean>                  <!-- 配置文件上传,如果没有使用文件上传可以不用配置,当然如果不配,那么配置文件中也不必引入上传组件包 -->         <bean id="multipartResolver"               class="org.springframework.web.multipart.commons.CommonsMultipartResolver">               <!-- 默认编码 -->             <property name="defaultEncoding" value="utf-8" />               <!-- 文件大小最大值 -->             <property name="maxUploadSize" value="10485760000" />               <!-- 内存中的最大值 -->             <property name="maxInMemorySize" value="40960" />           </bean>           </beans>  

 5.4 Spring整合Mybatis

<?xml version="1.0" encoding="UTF-8"?>     <beans xmlns="http://www.springframework.org/schema/beans"         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"         xmlns:context="http://www.springframework.org/schema/context"         xmlns:mvc="http://www.springframework.org/schema/mvc"         xsi:schemaLocation="http://www.springframework.org/schema/beans                               http://www.springframework.org/schema/beans/spring-beans-3.1.xsd                               http://www.springframework.org/schema/context                               http://www.springframework.org/schema/context/spring-context-3.1.xsd                               http://www.springframework.org/schema/mvc                               http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd">         <!-- 自动扫描 -->         <context:component-scan base-package="com.kostal" />         <!-- 引入配置文件 -->         <bean id="propertyConfigurer"             class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">             <property name="location" value="classpath:jdbc.properties" />         </bean>        <!-- 配置数据源 -->        <bean id="dataSource"             class="org.springframework.jdbc.datasource.DriverManagerDataSource">             <property name="driverClassName" value="${jdbc.driver}" />             <property name="url" value="${jdbc.url}" />             <property name="username" value="${jdbc.username}" />             <property name="password" value="${jdbc.password}" />         </bean>               <!-- spring和MyBatis完美整合,不需要mybatis的配置映射文件 -->         <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">             <property name="dataSource" ref="dataSource" />            <!-- 扫描entity包 使用别名 --> <property name="typeAliasesPackage" value="com.kostal.bean" />          <!-- 自动扫描mapping.xml文件 -->             <property name="mapperLocations" value="classpath:com/kostal/mapping/*.xml"></property>         </bean>              <!-- DAO接口所在包名,Spring会自动查找其下的类 -->         <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">             <property name="basePackage" value="com.kostal.dao" />             <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"></property>         </bean>              <!-- (事务管理)transaction manager, use JtaTransactionManager for global tx -->         <bean id="transactionManager"             class="org.springframework.jdbc.datasource.DataSourceTransactionManager">             <property name="dataSource" ref="dataSource" />         </bean>     </beans> 

六.常规的各功能模块

6.1 bean 对应的实体类

package com.kostal.bean;import java.io.Serializable;public class RoadInformation implements Serializable{ private static final long serialVersionUID = 1L; private String roadid; private Double longitude; private Double latitude; private Double height; private Double phasepositon; private Integer attribute; private String centerlineposition; private Double width; private String reserve; public RoadInformation() { super(); } public RoadInformation(String roadid, Double longitude, Double latitude, Double height, Double phasepositon, Integer attribute, String centerlineposition, Double width, String reserve) { super(); this.roadid = roadid; this.longitude = longitude; this.latitude = latitude; this.height = height; this.phasepositon = phasepositon; this.attribute = attribute; this.centerlineposition = centerlineposition; this.width = width; this.reserve = reserve; } public String getRoadid() { return roadid; } public void setRoadid(String roadid) { this.roadid = roadid; } public Double getLongitude() { return longitude; } public void setLongitude(Double longitude) { this.longitude = longitude; } public Double getLatitude() { return latitude; } public void setLatitude(Double latitude) { this.latitude = latitude; } public Double getHeight() { return height; } public void setHeight(Double height) { this.height = height; } public Double getPhasepositon() { return phasepositon; } public void setPhasepositon(Double phasepositon) { this.phasepositon = phasepositon; } public Integer getAttribute() { return attribute; } public void setAttribute(Integer attribute) { this.attribute = attribute; } public String getCenterlineposition() { return centerlineposition; } public void setCenterlineposition(String centerlineposition) { this.centerlineposition = centerlineposition; } public Double getWidth() { return width; } public void setWidth(Double width) { this.width = width; } public String getReserve() { return reserve; } public void setReserve(String reserve) { this.reserve = reserve; }}

6.2 dao层 采用xml配置方式

package com.kostal.dao;import java.util.List;import com.kostal.bean.RoadInformation;public interface RoadInformationDao {    List<RoadInformation> findAll();}

RoadInformation.xml

<?xml version="1.0" encoding="UTF-8" ?>  <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >  <mapper namespace="com.kostal.dao.RoadInformationDao" >    <select id="findAll" resultType="com.kostal.bean.RoadInformation">       select roadId,reserve from roadinformation  </select>  

</mapper>

6.3 Service层

package com.kostal.service;import java.util.List;import com.kostal.bean.RoadInformation; public interface RoadInformationService {     List<RoadInformation> findAll();

}

ServiceImpl层

package com.kostal.service;import java.util.List;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Service;import com.kostal.bean.RoadInformation;import com.kostal.dao.RoadInformationDao;@Servicepublic class RoadInformationServiceImpl implements RoadInformationService{ @Autowired public RoadInformationDao roadInformationDao; public RoadInformationDao getRoadInformationDao() { return roadInformationDao; } public void setRoadInformationDao(RoadInformationDao roadInformationDao) { this.roadInformationDao = roadInformationDao; } public List<RoadInformation> findAll() { // TODO Auto-generated method stub return roadInformationDao.findAll(); }

}

6.4 控制层

package com.kostal.control;import java.util.List;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;import com.kostal.bean.RoadInformation;import com.kostal.service.RoadInformationService;@Controllerpublic class RoadInformationControl { @Autowired public RoadInformationService roadInformationService; @RequestMapping("/main")    public String test() {        List<RoadInformation> list = roadInformationService.findAll();        int i = 1;        for (RoadInformation roadInformation : list) { System.out.println(roadInformation.getRoadid()+"   "+i); i++; }        return "main";    }}

转载请注明原文地址: https://www.6miu.com/read-2628119.html

最新回复(0)