快速构建一个可用的Maven工程

来源:互联网 发布:淘宝店铺管理规则 编辑:程序博客网 时间:2024/05/17 14:19

(本文致力于记录通用的快速构建一个无bug的maven工程)

1.创建maven工程(myeclip版)

创建Web Project并勾选Add Maven support选项java version我这里选择1.8。(具体可根据自己实际情况选择)
这里写图片描述

点击下一步,勾选生成web.xml
这里写图片描述

点击下一步 选择maven的项目结构
这里写图片描述

点击Finish==》
生成如下结构
这里写图片描述

2.设置Maven

对Maven的setting.xml进行配置
在Preferences的Maven的User Settings下找到settings.xml路径并打开
在< mirrors >标签下加入(使用阿里云的镜像仓库)

 <mirror>      <id>alimaven</id>      <mirrorOf>central</mirrorOf>      <name>aliyun maven</name>                               <url>http://maven.aliyun.com/nexus/content/groups/public/</url>    </mirror>

在< profiles >标签下加入(填入对应的jdk版本)

<profile>      <id>jdk-1.8</id>      <activation>    <activeByDefault>true</activeByDefault>        <jdk>1.8</jdk>      </activation>     <properties>              <maven.compiler.source>1.8</maven.compiler.source>              <maven.compiler.target>1.8</maven.compiler.target>              <maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>          </properties>      </profile>

具体可参照我的另一篇文章JavaWeb开发之Maven工程(SSM框架)
下面是上一篇文章的优化以及后续.

3.引入Jar包

修改你的pom.xml如下(其中引入了常用的jar包)
需要引入其他包可以上https://mvnrepository.com网站进行搜索

<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/xsd/maven-4.0.0.xsd">  <modelVersion>4.0.0</modelVersion>  <groupId>OneDay</groupId>  <artifactId>OneDay</artifactId>  <version>0.0.1-SNAPSHOT</version>  <packaging>war</packaging>  <name>OneDay</name> <description/>  <properties>    <webVersion>3.1</webVersion>    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>  </properties>  <dependencies>    <!--引入pageHalper  -->      <dependency>        <groupId>com.github.pagehelper</groupId>        <artifactId>pagehelper</artifactId>        <version>5.0.0</version>    </dependency>      <!-- https://mvnrepository.com/artifact/org.mybatis.generator/mybatis-generator-core -->    <dependency>        <groupId>org.mybatis.generator</groupId>        <artifactId>mybatis-generator-core</artifactId>        <version>1.3.5</version>    </dependency>    <dependency>      <groupId>javax</groupId>      <artifactId>javaee-api</artifactId>      <version>7.0</version>      <scope>provided</scope>    </dependency>    <dependency>      <groupId>org.glassfish.web</groupId>      <artifactId>javax.servlet.jsp.jstl</artifactId>      <version>1.2.2</version>    </dependency>    <dependency>    <groupId>org.springframework</groupId>    <artifactId>spring-webmvc</artifactId>    <version>4.3.7.RELEASE</version>    </dependency>    <!-- 返回json字符串的支持 -->    <!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind -->    <dependency>        <groupId>com.fasterxml.jackson.core</groupId>        <artifactId>jackson-databind</artifactId>        <version>2.8.8</version>    </dependency>    <!--JSR303数据校验支持  -->    <!-- https://mvnrepository.com/artifact/org.hibernate/hibernate-validator -->    <dependency>        <groupId>org.hibernate</groupId>        <artifactId>hibernate-validator</artifactId>        <version>5.4.1.Final</version>    </dependency>    <!-- https://mvnrepository.com/artifact/org.springframework/spring-jdbc -->    <dependency>        <groupId>org.springframework</groupId>        <artifactId>spring-jdbc</artifactId>        <version>4.3.7.RELEASE</version>    </dependency>    <!--Spring-test  -->    <!-- https://mvnrepository.com/artifact/org.springframework/spring-test -->    <dependency>        <groupId>org.springframework</groupId>        <artifactId>spring-test</artifactId>        <version>4.3.10.RELEASE</version>        <scope>test</scope>    </dependency>    <!-- https://mvnrepository.com/artifact/org.springframework/spring-aspects 面向切面编程-->    <dependency>        <groupId>org.springframework</groupId>        <artifactId>spring-aspects</artifactId>        <version>4.3.7.RELEASE</version>    </dependency>    <!-- https://mvnrepository.com/artifact/org.mybatis/mybatis -->    <dependency>        <groupId>org.mybatis</groupId>        <artifactId>mybatis</artifactId>        <version>3.4.2</version>    </dependency>    <!-- https://mvnrepository.com/artifact/org.mybatis/mybatis-spring  适配包-->    <dependency>        <groupId>org.mybatis</groupId>        <artifactId>mybatis-spring</artifactId>        <version>1.3.1</version>    </dependency>    <!-- 数据库链接池,驱动 -->    <!-- https://mvnrepository.com/artifact/c3p0/c3p0 数据库链接池-->    <dependency>        <groupId>c3p0</groupId>        <artifactId>c3p0</artifactId>        <version>0.9.1</version>    </dependency>    <!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->    <dependency>        <groupId>mysql</groupId>        <artifactId>mysql-connector-java</artifactId>        <version>5.1.41</version>    </dependency>    <!-- jstl,servlet-api,junit -->    <!-- https://mvnrepository.com/artifact/jstl/jstl -->    <dependency>        <groupId>jstl</groupId>        <artifactId>jstl</artifactId>        <version>1.2</version>    </dependency>    <!-- https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api -->    <dependency>        <groupId>javax.servlet</groupId>        <artifactId>javax.servlet-api</artifactId>        <version>3.0.1</version>        <scope>provided</scope>    </dependency>    <!-- https://mvnrepository.com/artifact/junit/junit -->    <dependency>        <groupId>junit</groupId>        <artifactId>junit</artifactId>        <version>4.12</version>        <scope>test</scope>    </dependency>  </dependencies>  <build>    <plugins>      <plugin>        <artifactId>maven-compiler-plugin</artifactId>        <version>2.3.2</version>        <configuration>          <source>1.8</source>          <target>1.8</target>        </configuration>      </plugin>      <plugin>        <artifactId>maven-war-plugin</artifactId>        <version>2.6</version>        <configuration>          <failOnMissingWebXml>false</failOnMissingWebXml>        </configuration>      </plugin>    </plugins>  </build></project>

4.编写SSM整合的关键配置文件

编写web.xml文件,在其中添加如下代码

<!-- 启动Spring的容器 -->  <context-param>    <param-name>contextConfigLocation</param-name>    <param-value>classpath:applicationContext.xml</param-value>  </context-param>  <listener>    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>  </listener>  <!-- springmvc的前端控制器,用他拦截所有请求 -->  <servlet>    <servlet-name>dispatherServlet</servlet-name>    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>    <load-on-startup>1</load-on-startup>  </servlet>  <servlet-mapping>    <servlet-name>dispatherServlet</servlet-name>    <url-pattern>/</url-pattern>  </servlet-mapping>  <!-- 字符编码过滤器 一定要放在所有过滤器之前-->  <filter>    <filter-name>CharacterEncodingFilter</filter-name>    <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>    <init-param>      <param-name>encoding</param-name>      <param-value>utf-8</param-value>    </init-param>    <init-param>      <param-name>forceRequestEncoding</param-name>      <param-value>true</param-value>    </init-param>    <init-param>      <param-name>forceResponseEncoding</param-name>      <param-value>true</param-value>    </init-param>  </filter>  <filter-mapping>    <filter-name>CharacterEncodingFilter</filter-name>    <url-pattern>/*</url-pattern>  </filter-mapping>  <!--使用Rest风格的URI 将普通页面的post请求装换为delete请求或者get请求  -->  <filter>    <filter-name>HiddenHttpMethodFilter</filter-name>    <filter-class>org.springframework.web.filter.HiddenHttpMethodFilter</filter-class>  </filter>  <filter-mapping>    <filter-name>HiddenHttpMethodFilter</filter-name>    <url-pattern>/*</url-pattern>  </filter-mapping>

这里首先更新下maven工程(注:出现未知问题首先更新maven工程)
这里写图片描述
在src/main/resources路径下右键新建
这里写图片描述
在other里搜索到Spring Bean Definition
这里写图片描述
Next新建如下名字的xml文件
这里写图片描述
在其中添加如下代码
(此处注意base-package=”com.guigu”之类的属性要与后面所建立的包名一致)

<beans xmlns="http://www.springframework.org/schema/beans"    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"    xmlns:context="http://www.springframework.org/schema/context"    xmlns:aop="http://www.springframework.org/schema/aop"    xmlns:tx="http://www.springframework.org/schema/tx"    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd        http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.3.xsd        http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.3.xsd        http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.3.xsd"><context:component-scan base-package="com.guigu">        <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller"/>    </context:component-scan>    <!-- Spring的配置文件,这里主要配置和业务逻辑有关的 -->    <!--======================数据源、事务控制、…… ============================== -->      <context:property-placeholder location="classpath:dbconfig.properties"/>    <bean id="pooledDataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">        <property name="jdbcUrl" value="${jdbc.jdbcUrl}"></property>        <property name="driverClass" value="${jdbc.driverClass}"></property>        <property name="user" value="${jdbc.user}"></property>        <property name="password" value="${jdbc.password}"></property>    </bean>    <!--====================配置和MyBatis的整合 ====================================== -->    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">        <!--指定MyBatis全局配置文件的位置  -->        <property name="configLocation" value="classpath:mybatis-config.xml"></property>        <property name="dataSource" ref="pooledDataSource"></property>        <!-- 指定MyBatis,mapper文件的位置 -->        <property name="mapperLocations" value="classpath:mapper/*.xml"></property>    </bean>    <!--配置扫描器,将MyBatis接口的实现加入到IOC容器中  -->    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">        <!--扫描所有dao接口的实现,加入到IOC容器中  -->        <property name="basePackage" value="com.guigu.dao"></property>    </bean>    <!-- 配置一个可以执行批量的sqlSession -->    <bean id="sqlSession" class="org.mybatis.spring.SqlSessionTemplate">        <constructor-arg name="sqlSessionFactory" ref="sqlSessionFactory"></constructor-arg>        <constructor-arg name="executorType" value="BATCH"></constructor-arg>    </bean>    <!--===========================================================================  -->    <!-- ===============================事务控制的配置 =================================-->    <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">        <!-- 控制数据源 -->        <property name="dataSource" ref="pooledDataSource"></property>    </bean>    <!--开启基于注解的事物,使用xml配置形式的事务(比较重要的都是使用配置式)  -->    <aop:config>        <!-- 切入点表达式 -->        <aop:pointcut expression="execution(* com.guigu.service..*(..))" id="txPoint"/>        <!-- 配置事务增强 -->        <aop:advisor advice-ref="txAdvice" pointcut-ref="txPoint"/>    </aop:config>    <!--配置事务增强,事务如何切入  -->    <tx:advice id="txAdvice" transaction-manager="transactionManager">        <tx:attributes>            <!-- 所有方法都是事务方法 -->            <tx:method name="*"/>            <!-- 以get开始的所有方法 -->            <tx:method name="get*" read-only="true"/>        </tx:attributes>    </tx:advice>    <!-- Spring配置文件的核心点(数据源,与MyBatis的整合,事务控制) -->

在与web.xml文件同级的目录下建立名为dispatherServlet-servlet的springXml文件
如下
这里写图片描述
其中添加如下代码如下

<beans xmlns="http://www.springframework.org/schema/beans"    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"    xmlns:context="http://www.springframework.org/schema/context"    xmlns:mvc="http://www.springframework.org/schema/mvc"    xsi:schemaLocation="http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.3.xsd        http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd        http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.3.xsd"><!--SpringMVC的配置文件,包含网站跳转逻辑的控制,配置  -->    <context:component-scan base-package="com.guigu" use-default-filters="false">        <!-- 只扫描控制器 -->        <context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/>    </context:component-scan>    <!--配置视图解析器,方便页面返回  -->    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">        <property name="prefix" value="/WEB-INF/views/"></property>        <property name="suffix" value=".jsp"></property>    </bean>    <!-- 标准配置 -->    <!--将springmvc不能处理的请求交给tomcat  -->    <mvc:default-servlet-handler/>    <!--能支持springmvc更高级的功能  JSR303校验,快捷的ajax 映射动态请求-->    <mvc:annotation-driven/>

在/WEB-INF路径下建立views文件夹

建立如下包
这里写图片描述

创建dbconfig.properties
这里写图片描述
配置你相对应的数据库连接

jdbc.jdbcUrl=jdbc:mysql://localhost:3306/demo?useUnicode=true&characterEncoding=utf8jdbc.driverClass=com.mysql.jdbc.Driverjdbc.user=rootjdbc.password=你的密码

创建mybatis-config.xml
这里写图片描述
添加如下代码

<!DOCTYPE configuration  PUBLIC "-//mybatis.org//DTD Config 3.0//EN"  "http://mybatis.org/dtd/mybatis-3-config.dtd">  <configuration>    <settings>        <setting name="mapUnderscoreToCamelCase" value="true"/>    </settings>    <typeAliases>        <package name="com.guigu.bean" />    </typeAliases>    <plugins>        <plugin interceptor="com.github.pagehelper.PageInterceptor">            <!--调整分页合理化  -->            <property name="reasonable" value="true"/>        </plugin>    </plugins>  </configuration>

5.使用mybatis的逆向工程

在工程目录下创建mbg.xml文件
这里写图片描述
添加代码:

<!DOCTYPE generatorConfiguration  PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"  "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd"><generatorConfiguration>  <context id="DB2Tables" targetRuntime="MyBatis3">    <commentGenerator>      <property name="suppressAllComments" value="true" />    </commentGenerator>    <!-- 配置数据库链接信息 -->    <jdbcConnection         driverClass="com.mysql.jdbc.Driver"        connectionURL="jdbc:mysql://localhost:3306/demo"        userId="root"        password="wzB903328615@qq.com">    </jdbcConnection>    <javaTypeResolver >      <property name="forceBigDecimals" value="false" />    </javaTypeResolver>    <!--指定JavaBean的生成位置  -->    <javaModelGenerator      targetPackage="com.guigu.bean"      targetProject=".\src\main\java">      <property name="enableSubPackages" value="true" />      <property name="trimStrings" value="true" />    </javaModelGenerator>    <!--指定sql映射文件生成的位置  -->    <sqlMapGenerator      targetPackage="mapper"      targetProject=".\src\main\resources">      <property name="enableSubPackages" value="true" />    </sqlMapGenerator>    <!-- 指定dao接口生成的位置,mapper接口 -->    <javaClientGenerator       type="XMLMAPPER" targetPackage="com.guigu.dao"        targetProject=".\src\main\java">      <property name="enableSubPackages" value="true" />    </javaClientGenerator>    <!-- 指定每个表的生成策略 根据你的数据表的情况自行添加修改-->    <table tableName="tbl_emp" domainObjectName="Employee"> </table>    <table tableName="tbl_dept" domainObjectName="Department"></table>  </context></generatorConfiguration>

创建类
这里写图片描述
添加代码;

package com.guigu.test;import java.io.File;import java.util.ArrayList;import java.util.List;import org.mybatis.generator.api.MyBatisGenerator;import org.mybatis.generator.config.Configuration;import org.mybatis.generator.config.xml.ConfigurationParser;import org.mybatis.generator.internal.DefaultShellCallback;public class MBGTest {    public static void main(String[] args) throws Exception {           List<String> warnings = new ArrayList<String>();           boolean overwrite = true;           File configFile = new File("mbg.xml");           ConfigurationParser cp = new ConfigurationParser(warnings);           Configuration config = cp.parseConfiguration(configFile);           DefaultShellCallback callback = new DefaultShellCallback(overwrite);           MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config, callback, warnings);           myBatisGenerator.generate(null);    }}
原创粉丝点击