第一步,使用maven创建一个简单的project。
这里取名为maven-demo,工程目录结构如下图:
pom.xml 配置文件如下:
<?xml version="1.0" encoding="UTF-8"?> <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>com.shell.maven.demo</groupId> <artifactId>maven-demo</artifactId> <version>1.0.0-SNAPSHOT</version> <name>maven-demo</name> <url>http://maven.apache.org</url> <!-- 指定私服 --> <repositories> <repository> <id>myRepo</id> <name>myRepo Repository</name> <url>http://maven.shell.com.cn:8081/nexus/content/groups/public/</url> <releases> <enabled>true</enabled> </releases> <snapshots> <enabled>true</enabled> </snapshots> </repository> </repositories> <pluginRepositories> <pluginRepository> <id>myRepo</id> <name>myRepo Repository</name> <url>http://maven.shell.com.cn:8081/nexus/content/groups/public/</url> <releases> <enabled>true</enabled> </releases> <snapshots> <enabled>true</enabled> </snapshots> </pluginRepository> </pluginRepositories> <build> <!-- 指定在jdk1.6环境下编译 --> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.1</version> <configuration> <source>1.6</source> <target>1.6</target> </configuration> </plugin> </plugins> </build> </project>
第二步,添加对Spring等第三方依赖。
pom.xml配置文件修改成如下:
<?xml version="1.0" encoding="UTF-8"?> <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>com.shell.maven.demo</groupId> <artifactId>maven-demo</artifactId> <version>1.0.0-SNAPSHOT</version> <name>maven-demo</name> <url>http://maven.apache.org</url> <properties> <springframework.version>3.1.0.RELEASE</springframework.version> </properties> <!-- 指定私服 --> <repositories> <repository> <id>myRepo</id> <name>myRepo Repository</name> <url>http://maven.shell.com.cn:8081/nexus/content/groups/public/</url> <releases> <enabled>true</enabled> </releases> <snapshots> <enabled>true</enabled> </snapshots> </repository> </repositories> <pluginRepositories> <pluginRepository> <id>myRepo</id> <name>myRepo Repository</name> <url>http://maven.shell.com.cn:8081/nexus/content/groups/public/</url> <releases> <enabled>true</enabled> </releases> <snapshots> <enabled>true</enabled> </snapshots> </pluginRepository> </pluginRepositories> <build> <!-- 指定在jdk1.6环境下编译 --> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.1</version> <configuration> <source>1.6</source> <target>1.6</target> </configuration> </plugin> </plugins> </build> <dependencies> <!-- spring 有关jar --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> <version>${springframework.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>${springframework.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-beans</artifactId> <version>${springframework.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-web</artifactId> <version>${springframework.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-jdbc</artifactId> <version>${springframework.version}</version> </dependency> <!-- oracle 驱动 --> <dependency> <groupId>com.oracle</groupId> <artifactId>ojdbc6</artifactId> <version>11.2.0.3.0</version> </dependency> <!-- 采用dbcp数据源 --> <dependency> <groupId>commons-dbcp</groupId> <artifactId>commons-dbcp</artifactId> <version>1.4</version> </dependency> <!-- comomons jar --> <dependency> <groupId>commons-lang</groupId> <artifactId>commons-lang</artifactId> <version>2.4</version> </dependency> <dependency> <groupId>commons-io</groupId> <artifactId>commons-io</artifactId> <version>2.4</version> </dependency> <dependency> <groupId>commons-logging</groupId> <artifactId>commons-logging</artifactId> <version>1.1.1</version> </dependency> <dependency> <groupId>commons-collections</groupId> <artifactId>commons-collections</artifactId> <version>3.2</version> </dependency> <dependency> <groupId>commons-beanutils</groupId> <artifactId>commons-beanutils</artifactId> <version>1.8.3</version> </dependency> </dependencies> </project>
第三步,在classpath目录下创建spring配置文件applicationContext.xml,同时定义id="dataSource"及id="jdbcTemplate"的bean。
applicationContext.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:jdbc="http://www.springframework.org/schema/jdbc" xmlns:tx="http://www.springframework.org/schema/tx" xmlns:util="http://www.springframework.org/schema/util" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation=" http://www.springframework.org/schema/jdbc http://www.springframework.org/schema/jdbc/spring-jdbc.xsd http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd"> <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"> <property name="url" value="${jdbc.url}"/> <property name="driverClassName" value="${jdbc.driverClassName}"/> <property name="username" value="${jdbc.username}"/> <property name="password" value="${jdbc.password}"/> <property name="initialSize" value="1"/> <property name="maxActive" value="2"/> </bean> <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate"> <property name="dataSource" ref="dataSource"></property> </bean> </beans>
第四步,修改pom.xml配置文件,添加数据库连接相关的属性定义,同时开启maven资源过滤。
pom.xml配置文件修改成如下:
<?xml version="1.0" encoding="UTF-8"?> <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>com.shell.maven.demo</groupId> <artifactId>maven-demo</artifactId> <version>1.0.0-SNAPSHOT</version> <name>maven-demo</name> <url>http://maven.apache.org</url> <properties> <!-- system property --> <encoding>UTF-8</encoding> <maven.test.skip>true</maven.test.skip> <skipTests>true</skipTests> <springframework.version>3.1.0.RELEASE</springframework.version> <!-- jdbc properties 本地连接的配置 --> <jdbc.url>jdbc:oracle:thin:@localhost:1521:shell</jdbc.url> <jdbc.driverClassName>oracle.jdbc.driver.OracleDriver</jdbc.driverClassName> <jdbc.username>scott</jdbc.username> <jdbc.password>yangxi2010</jdbc.password> </properties> <repositories> <repository> <id>myRepo</id> <name>myRepo Repository</name> <url>http://maven.infinitus.com.cn:8081/nexus/content/groups/public/</url> <releases> <enabled>true</enabled> </releases> <snapshots> <enabled>true</enabled> </snapshots> </repository> </repositories> <pluginRepositories> <pluginRepository> <id>myRepo</id> <name>myRepo Repository</name> <url>http://maven.infinitus.com.cn:8081/nexus/content/groups/public/</url> <releases> <enabled>true</enabled> </releases> <snapshots> <enabled>true</enabled> </snapshots> </pluginRepository> </pluginRepositories> <build> <!-- 对主资源目录开启资源过滤 --> <resources> <resource> <directory>src/main/resources</directory> <filtering>true</filtering> </resource> </resources> <!-- 指定在jdk1.6环境下编译 --> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.1</version> <configuration> <source>1.6</source> <target>1.6</target> </configuration> </plugin> </plugins> </build> <dependencies> <!-- spring 有关jar --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> <version>${springframework.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>${springframework.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-beans</artifactId> <version>${springframework.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-web</artifactId> <version>${springframework.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-jdbc</artifactId> <version>${springframework.version}</version> </dependency> <!-- oracle 驱动 --> <dependency> <groupId>com.oracle</groupId> <artifactId>ojdbc6</artifactId> <version>11.2.0.3.0</version> </dependency> <!-- 采用dbcp数据源 --> <dependency> <groupId>commons-dbcp</groupId> <artifactId>commons-dbcp</artifactId> <version>1.4</version> </dependency> <!-- comomons jar --> <dependency> <groupId>commons-lang</groupId> <artifactId>commons-lang</artifactId> <version>2.4</version> </dependency> <dependency> <groupId>commons-io</groupId> <artifactId>commons-io</artifactId> <version>2.4</version> </dependency> <dependency> <groupId>commons-logging</groupId> <artifactId>commons-logging</artifactId> <version>1.1.1</version> </dependency> <dependency> <groupId>commons-collections</groupId> <artifactId>commons-collections</artifactId> <version>3.2</version> </dependency> <dependency> <groupId>commons-beanutils</groupId> <artifactId>commons-beanutils</artifactId> <version>1.8.3</version> </dependency> </dependencies> </project>
第五步,在main方法中启动spring容器,使用jdbcTemplate查询一条数据出来。
本地数据库现在存在一张emp表,表中含有的数据如下图:
现在将empNo为7369的这条记录查询出来并在控制台输出。
main方法代码如下图:
/** * Test.java 2014年6月13日 */ package com.shell.maven.demo; import java.sql.ResultSet; import java.sql.SQLException; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; import org.springframework.dao.DataAccessException; import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.jdbc.core.ResultSetExtractor; /** * <p> * <b>Test</b> 是 * </p> * * @since 2014年6月13日 * @author shell * @version $Id$ */ public class Test { /** * @param args */ public static void main(String[] args) { // 启动spring 容器 ApplicationContext applicationContext = new ClassPathXmlApplicationContext("classpath:applicationContext.xml"); JdbcTemplate jdbcTemplate = (JdbcTemplate) applicationContext.getBean("jdbcTemplate"); // 查询数据 String sql = "select empno, ename, job from EMP "; String result = jdbcTemplate.query(sql, new ResultSetExtractor<String>() { public String extractData(ResultSet rs) throws SQLException, DataAccessException { rs.next(); String empNo = rs.getString(1); String eName = rs.getString(2); String job = rs.getString(3); return "empNo:" + empNo + ", eName:" + eName + ", job:" + job; } }); System.out.println(result); } }
第六步,编译maven-demo 工程。
在命令行执行 mvn clean install命令,入下图:
开始执行命令
编译成功结果
第七步,执行main方法,结果入下图:
看到上图蓝色框中的内容,表示数据查询操作成功。
此时我们可以去到classpath目录下查看applicationContext.xml文件的内容,结果如下图:
如上图所示,${jdbc.url}等变量被成功替换了。
maven的这个资源过滤特性可以帮助我们隔离开发环境和生产环境。不过要配合maven的profile配置才好用,
下面在pom.xml增加一个profile配置,用于配置生产环境的数据库连接信息。
第八步,配置生产环境数据库连接信息的profile
pom.xml配置文件增加如下配置:
<profiles> <profile> <id>prod</id> <properties> <!-- jdbc properties 生产连接的配置 --> <jdbc.url>jdbc:oracle:thin:@172.20.70.28:1521:gbst</jdbc.url> <jdbc.driverClassName>oracle.jdbc.driver.OracleDriver</jdbc.driverClassName> <jdbc.username>CBSPROD2</jdbc.username> <jdbc.password>CBSPROD2</jdbc.password> </properties> </profile> </profiles>重启编译后再看编译后的applicationContext.xml文件。(不过这时编译的命令要变一下,具体见第九步操作)
相关推荐
### 解决Maven资源过滤的POM配置文件 在Maven项目中,资源文件(如配置文件、XML文件等)的处理非常重要。Maven通过`<build>`标签下的`<resources>`配置来管理这些资源文件的编译和打包过程。本文将详细解析如何...
"maven 过滤文件夹打包"这个主题涉及到的是如何利用Maven的资源过滤功能来实现针对不同运行环境的配置文件打包。下面将详细解释这一过程。 在开发环境中,我们通常会有多种配置文件,比如`application-dev....
maven资源过滤打包后文件变大的处理方法 Maven是一款流行的Java项目管理和构建工具,广泛应用于企业级项目中。但是,在使用Maven进行资源过滤和打包时,经常会遇到文件变大的问题。本文将详细介绍Maven资源过滤打包...
本文将详细讲解如何使用IntelliJ IDEA(Idea)、Maven和Spring MVC框架来创建一个登录过滤器,以及如何将这个过滤器作为请求拦截器应用于实际项目中。 首先,让我们理解一下`Idea`、`Maven`和`Spring MVC`。`Idea`...
1. **资源过滤**:Maven提供资源过滤功能,允许我们在构建过程中替换或过滤资源文件中的变量。例如,`src/main/resources`下的配置文件可以被自动处理,替换掉`${property}`形式的占位符。 2. **资源复制**:通过`...
以上就是关于"Maven打包,指定classes路径"的知识点,主要涉及到Maven的资源配置和插件定制。理解并掌握这些配置可以帮助开发者更高效地管理和构建Java Web应用。同时,记得在实际项目中根据实际情况调整`pom.xml`,...
`WEB-INF/web.xml`是Web应用的部署描述符,定义了应用的组件、监听器、过滤器、Servlet等的配置信息。`WEB-INF/classes`和`WEB-INF/lib`则分别用于存放应用的编译后class文件和外部依赖的jar库。 结合Maven和JKOS,...
Maven 是一个流行的项目管理和整合工具,广泛应用于 Java 开发领域。它为开发者提供了完整的构建生命周期框架,帮助开发者简化项目的构建过程,使得项目的管理和构建更加标准化、自动化。 **为什么选择 Maven?** ...
在POM中,你可以配置打包相关的设置,如Web应用的入口点、过滤器、监听器等。 ** "mywebapp"项目实例 ** "mywebapp"可能是一个使用Maven构建的简单Web应用实例。这个项目可能包含以下结构: 1. `src/main/java`:...
这是过滤器的核心方法,它接收HttpServletRequest和HttpServletResponse对象作为参数,通过调用`chain.doFilter()`方法将请求传递给下一个过滤器或目标资源。开发者可以在doFilter方法中添加自定义逻辑,比如登录...
Maven Filter是Maven资源插件(maven-resources-plugin)的一部分,它允许我们在构建过程中对资源文件进行替换操作。通过使用`${property}`语法,我们可以引用Maven属性并在编译或打包阶段动态替换这些值。这对于多...
在`WEB-INF`目录下,我们可以找到`web.xml`,这是一个部署描述符,它定义了Web应用的行为,比如Servlet的映射、过滤器配置、会话超时等。在Java EE的Web应用中,`WEB-INF`目录是受保护的,外部不能直接访问,只有...
基本目录包括`src/main/java`(存放源代码)、`src/main/resources`(存放资源配置文件)、`src/main/webapp`(存放Web应用资源)等。 3. **Spring MVC框架** Spring MVC是Spring框架的一部分,用于处理Web请求。...
- `maven-resources-plugin`:处理资源文件,如复制、过滤等。 - `maven-jar-plugin`:打包Java应用为JAR文件。 - `maven-war-plugin`:打包Web应用为WAR文件。 - `maven-eclipse-plugin`:生成Eclipse项目文件...
3. **资源过滤**:允许在构建过程中对资源文件进行动态替换或过滤,提高了构建的灵活性。 4. **更好的错误处理**:改进了错误报告机制,使得错误信息更加准确和详细,便于问题定位。 5. **增强的依赖管理**:优化了...
最后,Maven在实践项目中也支持对项目添加额外的资源文件和过滤文件,实现多环境配置。通过这种方式,可以在同一套代码基础上,轻松地根据不同环境进行配置调整,使得项目的部署和运维变得更加灵活高效。
### Maven资源管理与Java项目配置详解 #### 一、Maven简介 Apache Maven 是一个流行的项目管理和理解工具,主要用于Java项目的构建、依赖管理和项目信息管理。通过Maven,开发者能够轻松地管理项目的生命周期,...
此外,项目的结构通常包括src/main/java目录下存放Java源代码,src/main/resources存储资源配置文件,src/main/webapp是Web应用的根目录,包含WEB-INF、static资源和JSP页面。pom.xml文件定义了项目的构建过程和依赖...
Maven 是一个强大的项目管理和构建工具,主要应用于Java项目。它通过使用一种标准的项目对象模型(Project Object Model,POM),自动化项目的构建、报告和文档生成。Maven 提供了一个项目信息管理工具,包括依赖...
- Maven Web项目的基本目录结构包括src/main/java(存放Java源代码)、src/main/resources(存放资源文件)、src/main/webapp(存放Web应用资源,如HTML、JS、CSS、Web-INF等)。 - Web-INF目录下应包含web.xml,...