eclipse maven打包_Maven 学习

7d156583fb4fdb4006284f6e786a6fe1.png

1 Maven 简介

Maven 使用项目对象模型(POM,Project Object Model) 的概念,可以通过一小段描述信息来管理项目的构建、报告和文档的软件项目管理工具

2 Maven 的下载与IDE 的整合

1 下载地址

http://maven.apche.org

2 Eclipse 整合Maven

Step1:打开 Eclipse 中window -> preference -> maven -> InstallLocations

更换为自己下载的 maven ,不使用 eclipse 自带的 maven

Step2:打开 maven -> UserSetting

更换为自己的 settings.xml 配置文件,并修改 settings.xml 文件

3 Maven 仓库与配置

3.1远程仓库

中央仓库 https://mvnrepository.com/

3.2 本地仓库

存储本机的拷贝,以及远程仓库中的下载的构件(Java API 资源)

4 仓库配置

5.1 settings.xml

设置本地仓库的地址 -->
<localRepository>E://Maven//repository</localRepository>

5.2 配置镜像源

<mirrors><mirror><!-- 镜像的ID --><id>alimaven</id><name>aliyun maven</name><!-- 指定镜像路径 --><url>http://maven.aliyun.com/nexus/content/groups/public/</url><!-- 匹配中央仓库 --><mirrorOf>central</mirrorOf>        </mirror></mirrors>

6 仓库优先级

本地仓库 > 指定仓库 > 远程仓库(镜像仓库 > 中央仓库)

6.1 本地仓库

6.2 指定仓库

6.3 远程仓库

镜像仓库

中央仓库

3 Maven 工程

3.1 Pom 工程

pom 工程是逻辑工程。

用在父级工程或者聚合工程。

用来做 jar 包的版本控制

3.2 jar 工程

将会打包成 jar 用作 jar 包使用

3.3 war 工程

将会打包成 war ,发布在服务器上的工程。

4 创建Maven 项目

使用 Eclipse 创建 Maven 项目,勾选简单工程,即创建纯净的项目。

4.1 Maven 创建

Group Id Artifact Id Version 这三个组合起来唯一定位项目的位置

Group Id : 域名倒着写

Artifact Id:项目名称

Version : 版本

Packing :项目类型

Name:任意

Description:描述任意

4.2 Maven 目录

| | | | :---------------- | ------------------------------------------------------------ | | src/main/java | 存储 java 源代码 | | src/man/resources | 存储资源配置文件 | | src/main/test | 测试 java 源代码和资源文件 | | src/ | 存储源代码和资源文件 | | target | 编译后内容放置的文件夹 | | pom.xml | Maven 的基础配置文件。配置项目与项目之间关系,包括配置依赖关系等等 |

5 工程关系

5.1 依赖

如果 A工程 依赖于 B 工程的资源,则称 A 工程依赖于 B 工程

做法:将 B 工程的坐标加入 A 工程的 pom.xml 的依赖中。

<dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.2</version><!--complie 编译中有效runtime 运行中有效system 全部中有效[默认]provided 当前工程中有效test 只在测试有效--><scope>test</scope>
</dependency>

5.2 继承

如果 A 工程继承 B 工程,则A 工程可以使用 B 工程所有资源。
前提 B 工程必须是 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/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>cn.edu.ahszu</groupId><artifactId>ParentProject</artifactId><version>0.0.1-SNAPSHOT</version><packaging>pom</packaging><name>Demo</name><properties><!-- 配置当前项目依赖构建的版本 项目名最好见名知意--><junit-version>4.2</junit-version></properties><dependencyManagement><dependencies><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>${junit-version}</version></dependency></dependencies></dependencyManagement>
</project>

子工程的配置文件

<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><!-- 继承父项目 --><parent><groupId>cn.edu.ahszu</groupId><artifactId>ParentProject</artifactId><version>0.0.1-SNAPSHOT</version></parent><groupId>cn.edu.ahszu</groupId><artifactId>ChildProject</artifactId><version>0.0.1-SNAPSHOT</version><dependencies><dependency><groupId>junit</groupId><artifactId>junit</artifactId></dependency></dependencies>
</project>

5.3 聚合

当我们开发的工程拥有 2 个以上模块的时候,每个模块都是一个独立的功能集合。

注意:在创建聚合工程的过程中,总的工程必须是 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/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>cn.edu.ahszu</groupId><artifactId>04-Maven-Managerment</artifactId><version>0.0.1-SNAPSHOT</version><packaging>pom</packaging><!-- 子模块 --><modules><module>04-Maben-sub</module><module>04-Maven-sub2</module></modules>
</project>

6 创建 war 类型的项目

创建war 类型的项目后,

war 默认没有 WEB-INF 目录及下面的 web.xml 文件,所以需要手动添加。

在 webapp 目录下创建 WEB-INF 目录该目录下的 web.xm 文件

7 Maven 常用插件

7.1 编译器插件

前提是本机必须有 JDK ,并且JDK 的版本要对应

在 pom.xml 配置编译器插件,用于选择 JDK 的版本,并且对本项目生效。

若需全局配置,需要在 settings.xml 中配置编译器插件。

pom.xml 局部配置

<build> <plugins> <!-- java 编译插件 --> <plugin> <groupId>org.apache.maven.plugins</groupId>        <artifactId>maven-compiler-plugin</artifactId> <version>3.2</version> <configuration> <source>1.7</source> <target>1.7</target> <encoding>UTF-8</encoding> </configuration> </plugin> </plugins> </build>

settings.xml 全局配置

<profile> <!-- 定义的编译器插件 ID,全局唯一 --> <id>jdk-1.7</id> <!-- 插件标记,activeByDefault 默认编译器,jdk 提供编译器版本 --> <activation> <activeByDefault>true</activeByDefault> <jdk>1.7</jdk> </activation> <!-- 配置信息 source-源信息,target-字节码信息,compilerVersion-编译过程版--><properties> <maven.compiler.source>1.7</maven.compiler.source> <maven.compiler.target>1.7</maven.compiler.target> <maven.compiler.compilerVersion>1.7</maven.compiler.compilerVersion> </properties> 
</profile>

7.2 Tomcat 插件

启动 tomcat 命令:tocmat7 :run
命令中的 tomcat7 是插件命名,由插件提供商决定。run 为插件中的具体功能.

本地应用

<build> <plugins> <!-- 配置 Tomcat 插件 --> <plugin> <groupId>org.apache.tomcat.maven</groupId> <artifactId>tomcat7-maven-plugin</artifactId> <version>2.2</version> <configuration> <port>8080</port> <!--/ 表示访问 tocmat 中 webapp 中 ROOT 目录访问 http://localhost:8080/--><path>/</path>  </configuration> </plugin> </plugins> </build>

远程热部署

在 tomcat 容器运行过程中,动态实现 war 工程的部署,重新部署的功能。

使用 maven build ,使用 run:deploy 或者 run:redeploy

配置 tocmat 服务器用户

<role rolename="manager-gui"/> 
<role rolename="manager-script"/> 
<user username="tomcatUsername" password="tomcatPassword" roles="manager-gui,manager-script"/>

修改 pom.xml 文件

<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>cn.szxy</groupId><artifactId>07-Maven-tomcat</artifactId><version>0.0.1-SNAPSHOT</version><packaging>war</packaging><build> <plugins> <!-- 配置 Tomcat 插件 --> <plugin> <groupId>org.apache.tomcat.maven</groupId> <artifactId>tomcat7-maven-plugin</artifactId> <version>2.2</version> <configuration> <port>8080</port> <!-- path: 上传的 war 包解压后的路径命名 --> <path>/ROOT</path> <!-- url : 上传 war 包到什么位置,除 IP 和端口可以修改外其他不变 --> <url>http://192.168.170.8:8080//manager/text</url> <!-- 为 tomcat 配置的管理用户名和密码. --> <username>tomcatUsername</username> <password>tomcatPassword</password> </configuration> </plugin> </plugins> </build> 
</project>

7.3 资源拷贝插件

使用 maven 命令生成 war 类型的工程,默认打包 src/main/resources 下的配置文件,并不会打包src 目录下的配置文件,所以这时需要配置 pom.xml ,让maven 也打包src目录下的配置文件。

注意:当在 pom.xml 配置 src 目录配置文件时,还需再添加原来默认打包路径下 src/mian/resources 下的配置文件。

<!-- 配置资源插件 -->
<resources><resource><directory>src/main/java</directory><includes><include>**/**.xml</include></includes></resource><resource><directory>src/main/resources</directory><includes><include>**/**.xml</include><include>**/**.properties</include></includes></resource>
</resources>

8 Maven 常用命令

install

本地安装,包含编译,打包,安装到本地仓库

编译 javac

打包 jar

安装到本地仓库,将打包 jar 文件,保存到本地仓库中。

clean

清除已编译信息,删除工程中的 target 目录。

compile

只编译,javac

deploy

部署。

package

打包。包括编译,打包的两个功能

9 Maven 私服

私服是一种特殊的远程仓库,它是架设在局域网的仓库服务,

私服代理广域网上的远程仓库,供局域网使用。

安装私服 Nexus

默认端口为8081

修改防火墙,开放端口

service stop iptables

开启 nexus 服务器

./nexus start

访问网站

http://IP:8081/nexus/

配置私服

登录

Nexus 默认用户名是 admin、密码是admin123

仓库类型

hosted

存放自己项目的构件

proxy

代理仓库:代理公共的远程仓库

3rd party

存放第三方构建

设置 proxy 代理仓库准许远程下载

7eb296e9bdd550fe5d7e127180e14799.png

setting.xml

注意:配置了 nexus 服务器,就不需要配置镜像源

当 setting.xml 配置文件出错,则 eclipse maven插件不能读取 setting.xml

<?xml version="1.0" encoding="UTF-8"?> 
<settings  xmlns="http://maven.apache.org/SETTINGS/1.0.0"                                       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"   xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0                       http://maven.apache.org/xsd/settings-1.0.0.xsd"> <localRepository>D:/repositories</localRepository> <!--Maven是否需要和用户交互以获得输入。如果Maven需要和用户交互以获得输入,则设置成true,反之则应为false。默认为true。--> <interactiveMode>true</interactiveMode> <!--表示Maven是否需要在离线模式下运行。如果构建系统需要在离线模式下运行,则为true,默认
为false。 --> <offline>false</offline> 
<!--当插件的组织Id(groupId)没有显式提供时,供搜寻插件组织Id(groupId)的列表。该元素包含一个      pluginGroup元素列表,每个子元素包含了一个组织Id(groupId)。当我们使用某个插件,并且没有在命令行为其提供组织Id(groupId)的时候,Maven就会使用该列表。 
--><pluginGroups> <pluginGroup>org.mortbay.jetty</pluginGroup> <pluginGroup>org.jenkins-ci.tools</pluginGroup> </pluginGroups> <proxies> </proxies> 
<!--配置服务端的一些设置。一些设置如安全证书不应该和pom.xml一起分发。这种类型的信息应该存在于构建服务器上的settings.xml文件中。--> <servers> <server> <!-- server的id必须和pom.xml文件中的仓库id一致 --> <!--这是server的id(注意不是用户登陆的id),该id与distributionManagement中 repository元素的id相匹配。--> <id>nexus-releases</id> <username>deployment</username> <password>deployment123</password> </server> <server>  <id>nexus-snapshots</id> <username>deployment</username> <password>deployment123</password> </server> </servers> 
<!--根据环境参数来调整构建配置的列表。--> <profiles> <profile> <id>jdk-1.7</id> <activation> <activeByDefault>true</activeByDefault> <jdk>1.7</jdk> </activation> <properties> <maven.compiler.source>1.7</maven.compiler.source> <maven.compiler.target>1.7</maven.compiler.target> <maven.compiler.compilerVersion>1.7</maven.compiler.compilerVersion> </properties> </profile> <profile> <id>sxt</id> <activation> <activeByDefault>false</activeByDefault>         <jdk>1.7</jdk> </activation> <repositories> <!-- 私有库配置 --> <repository> <!-- 私有库 id --> <id>nexus</id> <!-- 私有库地址 --> <url>http://192.168.120.158:8081/nexus/content/groups/public/</url> <!-- 私有库是否支持 releases 版本 --> <releases> <enabled>true</enabled> </releases> <!-- 私有库是否支持 snapshots 版本 --> <snapshots> <enabled>true</enabled> </snapshots> </repository> </repositories>       <pluginRepositories> <!-- 插件库配置,具体含义私有库配置 --> <pluginRepository> <id>nexus</id> <url>http://192.168.120.158:8081/nexus/content/groups/public/</url> <releases> <enabled>true</enabled> </releases> <snapshots> <enabled>true</enabled> </snapshots> </pluginRepository> </pluginRepositories> </profile> </profiles> <!-- 激活 profile --> <activeProfiles> <!-- 根据 profile 的 id 标签值激活指定的内容 --> <activeProfile>sxt</activeProfile> </activeProfiles> 
</settings>

pom.xml

<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>group</groupId> <artifactId>project</artifactId> <version>1.0</version> <distributionManagement> <repository> <id>nexus-releases</id> <name>Nexus Release Repository</name> <url>http://192.168.120.158:8081/nexus/content/repositories/releases/</url> </repository> <snapshotRepository> <id>nexus-snapshots</id> <name>Nexus Snapshot Repository</name> <url>http://192.168.120.158:8081/nexus/content/repositories/snapshots/</url> </snapshotRepository> </distributionManagement> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-source-plugin</artifactId> <version>2.1.2</version> <executions> <execution> <id>attach-sources</id> <goals> <goal>jar</goal> </goals> </execution> </executions> </plugin> </plugins> </build> 
</project>

在 Maven 工程的 maven build 中,输入命令 deploy,即可实现发布工程信息到私服。

如果同版本工程可能多次发布,需要修改 Nexus 配置。

10 Maven 实战

1 需求分析

基于 SSM 框架 的CRUD 案例

2 项目选型

3 项目架构设计

传统项目设计方式 --单体架构

Project

----------com.szxy

-----------------------Controller

------------------------Serviece

------------------------Pojo

------------------------Mapper

Maven项目设计方式

82be3ccc185b94e21f930a4dbdb77b41.png

2 创建工程

2.1 建立 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/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>cn.szy</groupId><artifactId>MavenParent</artifactId><version>0.0.1-SNAPSHOT</version><packaging>pom</packaging><properties><junit.version>4.12</junit.version><spring.version>4.1.3.RELEASE</spring.version><mybatis.version>3.2.8</mybatis.version><mybatis.spring.version>1.2.2</mybatis.spring.version><mysql.version>5.1.32</mysql.version><slf4j.version>1.6.4</slf4j.version><druid.version>1.0.9</druid.version><jstl.version>1.2</jstl.version><servlet-api.version>2.5</servlet-api.version><jsp-api.version>2.0</jsp-api.version><tomcat.version>2.2</tomcat.version></properties><!-- jar包的依赖注入 ,由于该工程是一个父工程,所以jar包在该pom文件中只是声明 --><dependencyManagement><dependencies><!-- 单元测试 --><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>${junit.version}</version><scope>test</scope></dependency><!-- 日志处理 --><dependency><groupId>org.slf4j</groupId><artifactId>slf4j-log4j12</artifactId><version>${slf4j.version}</version></dependency><!-- Mybatis --><dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>${mybatis.version}</version></dependency><dependency><groupId>org.mybatis</groupId><artifactId>mybatis-spring</artifactId><version>${mybatis.spring.version}</version></dependency><!-- MySql --><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>${mysql.version}</version></dependency><!-- 连接池 --><dependency><groupId>com.alibaba</groupId><artifactId>druid</artifactId><version>${druid.version}</version></dependency><!-- Spring --><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-beans</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-jdbc</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-aspects</artifactId><version>${spring.version}</version></dependency><!-- JSP相关 --><dependency><groupId>jstl</groupId><artifactId>jstl</artifactId><version>${jstl.version}</version></dependency><dependency><groupId>javax.servlet</groupId><artifactId>servlet-api</artifactId><version>${servlet-api.version}</version><scope>provided</scope></dependency><dependency><groupId>javax.servlet</groupId><artifactId>jsp-api</artifactId><version>${jsp-api.version}</version><scope>provided</scope></dependency></dependencies></dependencyManagement><!-- 插件的开启 --><build><!-- tomcat插件,由于子项目不一定每个都是web 项目,所以该插件只是声明,并未开启 --><pluginManagement><plugins><!-- 配置Tomcat插件 --><plugin><groupId>org.apache.tomcat.maven</groupId><artifactId>tomcat7-maven-plugin</artifactId><version>${tomcat.version}</version></plugin></plugins></pluginManagement><!-- maven的编译器插件,该插件主要是决定了当前项目所使用jre版本 。由于无论是jar,还是war项目都需要制定jar的版本,所以该插件不需要生命,应当是开启的。 --><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><version>3.2</version><configuration><source>1.7</source><target>1.7</target><encoding>UTF-8</encoding></configuration></plugin></plugins></build>
</project>

2.2 创建聚合 pom 工程

pom.xml 配置

当前是子模块全部创建后的 pom.xml 配置文件

<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><parent><groupId>cn.szxy</groupId><artifactId>11-manager-parent</artifactId><version>0.0.1-SNAPSHOT</version></parent><groupId>cn.szxy</groupId><artifactId>11-manager</artifactId><version>0.0.1-SNAPSHOT</version><packaging>pom</packaging><modules><module>11-manager-pojo</module><module>11-manager-mapper</module><module>11-manger-service</module><module>11-manager-controller</module></modules>
</project>

2.3 创建子模块 pojo 工程

pom.xml 文件无需修改

<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><parent><groupId>cn.szxy</groupId><artifactId>11-manager</artifactId><version>0.0.1-SNAPSHOT</version></parent><artifactId>11-manager-pojo</artifactId>
</project>

2.4 创建子模块 mapper 工程

pom.xml 配置文件

添加 pojo 工程依赖

配置资源插件,复制映射文件到资源目录下

添加关于 mybatis 的 jar 包

<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><parent><groupId>cn.szxy</groupId><artifactId>11-manager</artifactId><version>0.0.1-SNAPSHOT</version></parent><artifactId>11-manager-mapper</artifactId><build><resources><resource><directory>src/main/java</directory><includes><include>**/*.xml</include></includes></resource></resources></build><dependencies><dependency><groupId>cn.szxy</groupId><artifactId>11-manager-pojo</artifactId><version>0.0.1-SNAPSHOT</version></dependency><!-- mybatis 依赖 --><dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId></dependency><dependency><groupId>org.mybatis</groupId><artifactId>mybatis-spring</artifactId></dependency><!-- MySql --><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId></dependency><!-- 连接池 --><dependency><groupId>com.alibaba</groupId><artifactId>druid</artifactId></dependency></dependencies>
</project>

2.5 创建子模块 service工程

pom.xml 配置文件

添加 maaper 工程依赖

添加 spring 相关 jar 包

<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><parent><groupId>cn.szxy</groupId><artifactId>11-manager</artifactId><version>0.0.1-SNAPSHOT</version></parent><artifactId>11-manager-service</artifactId><dependencies><dependency><groupId>cn.szxy</groupId><artifactId>11-manager-mapper</artifactId><version>0.0.1-SNAPSHOT</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-beans</artifactId></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc</artifactId></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-jdbc</artifactId></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-aspects</artifactId></dependency></dependencies>
</project>

2.6 创建子模块 controller 工程

0ab1ae6b369c44b706e6f223f374165f.png

spring 配置

applicationContext-Dao.xml

<?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.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd"> <!-- 配置解析properties文件的工具类 --> <context:property-placeholder location="classpath:resource/*.properties"/> <!-- 配置数据源 dataSource 阿里数据源--> <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource" destroy-method="close"> <property name="url" value="${jdbc.url}"/> <property name="username" value="${jdbc.username}" /> <property name="password" value="${jdbc.password}" /> <property name="driverClassName" value="${jdbc.driver}" /> <property name="maxActive" value="10" /> <property name="minIdle" value="5" /> </bean> <!-- 创建mybatis的上下文对象  --> <bean class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="dataSource"> <ref bean="dataSource"/> </property> <property name="configLocation"> <value>classpath:mybatis/SqlMapperClient.xml</value> </property> </bean> <!-- 扫描mybatis的接口与映射配置文件 --> <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> <property name="basePackage" value="com.szxy.mapper"/> </bean> </beans>

applicationContext-service.xml

<?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.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd"> <!-- 扫描bean对象 --> <context:component-scan base-package="cn.szxy.service"/> </beans>

applicationContext-tx.xml

<?xml version="1.0" encoding="UTF-8"?> 
<beans xmlns="http://www.springframework.org/schema/beans"  xmlns:context="http://www.springframework.org/schema/context" xmlns:p="http://www.springframework.org/schema/p"  xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd  http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd  http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.0.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.0.xsd  http://www.springframework.org/schema/util http://www.springframework.org/schema/util/springutil-4.0.xsd"> <!-- 配置事物管理器的切面 -->  <bean id="transactionMananger" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dataSource" ref="dataSource"/>    </bean>     <!-- 配置事物传播行为 :其实就是那些方法应该受什么样的事物控制--> <tx:advice id="advice" transaction-manager="transactionMananger"> <tx:attributes> <tx:method name="add*" propagation="REQUIRED"/> <tx:method name="modify*" propagation="REQUIRED"/> <tx:method name="update*" propagation="REQUIRED"/> <tx:method name="dorp*" propagation="REQUIRED"/> <tx:method name="del*" propagation="REQUIRED"/> <tx:method name="find*" read-only="true"/> </tx:attributes> </tx:advice> <!-- 那些类下的方法需要参与到当前的事物管理中 。配置切点 --> <aop:config> <aop:advisor advice-ref="advice" pointcut="execution(* com.bjsxt.service.*.*(..))"/> </aop:config> </beans>

springmvc.xml

<?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.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd"><!-- 包的扫描器主要是扫描@controller --><context:component-scan  base-package="com.szxy.web.controller" /><!-- 注册两个新对象 主要是为了来处理 springmvc中的其他anntation 如:@requestmapping --><mvc:annotation-driven /><!-- 视图解析器 --><bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"><property name="prefix" value="/WEB-INF/jsp/" /><!-- jsp所在的前缀 --><property name="suffix" value=".jsp" /></bean><!-- 配置静态资源映射 --><mvc:resources location="/WEB-INF/css/" mapping="/css/**" /><mvc:resources location="/WEB-INF/js/" mapping="/js/**" /><!-- 文件上传处理器 --><!-- <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"><property name="defaultEncoding" value="utf-8"></property><property name="maxInMemorySize" value="1024"></property>单位字节org.springframework.web.multipart.MaxUploadSizeExc eededException<property name="maxUploadSize" value="1000000"></property></bean> -->
</beans>

SqlMapperClient.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configurationPUBLIC "-//mybatis.org//DTD Config 3.0//EN""http://mybatis.org/dtd/mybatis-3-config.dtd"><configuration><!-- 设置分页 -->
</configuration>

db.properties

jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql:///test
jdbc.username=root
jdbc.password=root

2.7 开启服务器

clean tocmat7:run

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/501015.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

口琴膜片什么作用_2020年半音阶口琴选购攻略,让小白告别选择困难

为什么我会喜欢上口琴&#xff0c;其实是因为小时候看到《数码宝贝》里的阿和吹奏口琴&#xff0c;当时觉得很酷。不过家里条件很差&#xff0c;想要一个但是没提&#xff0c;后来工作买了一把铃木的。不过选口琴是一个很麻烦的事情&#xff0c;品类太多。在了解的过程中&#…

JAVA进阶教学之(集合)

目录 1、集合概述 2、集合存储的数据类型 3、不同的集合&#xff0c;底层都会对应不同的数据结构 4、集合继承结构图&#xff08;部分接口和类&#xff09; 5、Collection接口中常用的方法 6、Collection 集合迭代&#xff08;遍历&#xff09; 7、Collection的contains…

python中有数组吗_python有数组吗

广告关闭 腾讯云11.11云上盛惠 &#xff0c;精选热门产品助力上云&#xff0c;云服务器首年88元起&#xff0c;买的越多返的越多&#xff0c;最高返5000元&#xff01;感悟&#xff1a; 1.python列表操作里不允许变量类型的指针2.case1类似于冒泡排序操作&#xff0c;这个是满足…

flutter天气_牛笔!自己用Flutter撸一个天气APP

这是一款简约风格的 flutter 天气项目&#xff0c;提供实时、多日、24 小时、台风路径以及生活指数等服务&#xff0c;支持定位、删除、搜索等操作。下图为主页效果&#xff1a;开始本身作为天气 APP&#xff0c;自定义绘制自然少不了&#xff0c;首页多样的背景效果&#xff0…

电脑远程凭证不工作:解决

电脑 远程桌面连接你的凭据不工作解决方法 方法/步骤 第一步我们首先需要知道远程桌面连接你的凭据不工作原因是&#xff0c;远程的电脑拒绝了访问&#xff0c;需要设置在远程的电脑上设置安全选项&#xff0c;按winR键&#xff0c;打开运行&#xff0c;输入“gpedit.msc”&a…

python汉诺塔递归算法_Python文摘:汉诺塔问题与递归算法

历史传说&#xff1a; 在世界中心贝拿勒斯&#xff08;在印度北部&#xff09;的圣庙里&#xff0c;一块黄铜板上插着三根宝石针。印度教的主神梵天在创造世界的时候&#xff0c;在其中一根针上从下到上地穿好了由大到小的64片金片&#xff0c;这就是所谓的汉诺塔。不论白天黑夜…

转-递归教学

作者&#xff1a;帅地 链接&#xff1a;https://www.zhihu.com/question/31412436/answer/683820765 来源&#xff1a;知乎 著作权归作者所有。商业转载请联系作者获得授权&#xff0c;非商业转载请注明出处。 递归专题连续刷题半年&#xff0c;从小白到学会了套路&#xff…

android游戏编程之从零开始_纯C语言程序员写的编程新手入门基础小游戏之最炫酷推箱子...

很多编程爱好者都编写过推箱子游戏编程吧&#xff0c;最近有好些朋友看见我以前的推箱子程序后&#xff0c;问我是怎么做的。我一直想把这个程序的整个过程写一份详细的东西&#xff0c;与各位编程爱好者分享&#xff0c;一直没空。正好现在放假了&#xff0c;而且离回家还有几…

c++ h cpp文件如何关联_C++核心准则SF.5: .cpp文件必须包含定义它接口的.h文件

SF.5: A .cpp file must include the .h file(s) that defines its interfaceSF.5: .cpp文件必须包含定义它接口的.h文件Reason(原因)This enables the compiler to do an early consistency check.这样可以让编译器尽早进行一致性检查。Example, bad(反面示例)// foo.h:void f…

JAVA进阶教学之(IO流)

目录 1、什么是IO流 2、流的分类 3、流的四大家族首领 4、java.io.*包下需要掌握的16个流 5、FileInputStream的实用方法 6、FileOutputStream的方法 7、文件复制/拷贝 8、FileReader的使用 9、FileWriter的使用 10、复制普通文本文件 11、BufferedReader带有缓冲区…

devtools安装_R语言如何批量安装软件包

1. 为什么要批量安装R语言包当你在新的环境下&#xff0c; 安装R语言时&#xff0c;你需要安装很多包&#xff0c;比如tidyverse&#xff0c;比如data.table&#xff0c;这里你可以写一个函数&#xff0c;将所有需要的包写进去&#xff0c;然后进行批量安装2. 程序如下&#xf…

JAVA进阶教学之(序列化和反序列化)

目录 1、序列化Serialize和反序列化的概念 2、序列化和反序列化的代码演示&#xff1a; 3、序列化多个对象&#xff08;序列化集合&#xff09; 4、transient关键字将部分属性不参与序列化 1、序列化Serialize和反序列化的概念 在内存和硬盘的数据交互过程中&#xff0c;将…

java如何实现e的次方_Java开发如何更改MySQL数据库datadir目录之MySQL数据库索引实现...

引言MySQL是一个关系型数据库管理系统&#xff0c;由瑞典MySQL AB 公司开发&#xff0c;目前属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一&#xff0c;在 WEB 应用方面&#xff0c;MySQL是最好的 RDBMS (Relational Database Management System&#xff0c…

pytorch 训练过程acc_Pytorch之Softmax多分类任务

在上一篇文章中&#xff0c;笔者介绍了什么是Softmax回归及其原理。因此在接下来的这篇文章中&#xff0c;我们就来开始动手实现一下Softmax回归&#xff0c;并且最后要完成利用Softmax模型对Fashion MINIST进行分类的任务。在开始实现Softmax之前&#xff0c;我们先来了解一下…

进程调度实验_Linux应用编程之进程的PID与PPID

关注、星标公众号&#xff0c;直达精彩内容ID&#xff1a;嵌入式情报局作者&#xff1a;情报小哥1进程PID首先介绍PID的相关知识&#xff0c;为后面介绍fork函数进行铺垫。01PID与PPID PID不是控制理论的PID算法&#xff0c;而是Prcess ID的简写。进程PID是当操作系统运行进程时…

操作Windows文件夹时,弹出文件夹正在使用,操作无法完成【解决】

在windows系统上&#xff0c;有时候在删除系统文件或文件夹时出现弹框&#xff0c;提示操作无法完成。这种情况的出现是因为你要删除的文件或文件夹被打开&#xff0c;或者被系统占用。遇到这种情况要怎么处理呢&#xff0c;本文介绍下具体的操作方法来帮助你解决这个问题。 方…

邀请合作如何表达_适时表达想法 才有利于彼此的合作

丹尼跟珍妮合作主持一个podcast节目&#xff0c;两人对这个节目兴致勃勃&#xff0c;并花很多时间投入&#xff0c;珍妮想邀请自己身边朋友一起参加&#xff0c;认为特别来宾可以增加节目的丰富度&#xff1b;丹尼却觉得现在节目才刚开始起步&#xff0c;要建立好两人的节目定位…

idea代码可以编译但是爆红_推荐一款 IDEA 生成代码神器,写代码再也不用加班了...

作者&#xff1a;HeloWxl链接&#xff1a;https://www.jianshu.com/p/e4192d7c6844Easycode是idea的一个插件&#xff0c;可以直接对数据的表生成entity,controller,service,dao,mapper,无需任何编码&#xff0c;简单而强大。1、安装(EasyCode)我这里的话是已经那装好了。建议大…

html跑马灯_用Excel居然能做“跑马灯”,而且还这么简单!

我的目标&#xff1a;让中国的大学生走出校门的那一刻就已经具备这些office技能&#xff0c;让职场人士能高效使用office为其服务。支持我&#xff0c;也为自己加油&#xff01;你没看错&#xff0c;上面这个就是用Excel做出来的&#xff0c;不过要用到窗体和控件。步骤如下&am…

c语言双链表排序交换节点_图解:单链表翻转的三种方式!

当我们在聊到链表反转的时候&#xff0c;一定说的都是单链表&#xff0c;双链表本身就具有前驱指针 Prev 和后续指针 next&#xff0c;无需进行翻转。单链表反转&#xff0c;反转后的效果如下&#xff1a;看起来很简单&#xff0c;只需要将单链表所有结点的 next 指向&#xff…