使用IDEA搭建Maven+SpringMVC+Spring+Hibernate环境
来源:互联网 发布:科比生涯数据图 编辑:程序博客网 时间:2024/06/05 09:46
前期准备
- jdk,tomcat,mysql,已正确安装
- Maven已正确安装,在cmd中可以查看maven版本
- IDEA已正确安装,能把简单项目跑起来
开始出发
打开IDEA,选择Maven,找到maven
选择webapp时别弄混了,上面也有一个cocoon-22-archetype-webapp,不要选那个,认准maven大品牌点击Next,填写信息
GroupId:一般分为多个段,第一段为域,第二段为公司名称,例如:org.apache
ArtifactId:项目名
若项目在maven本地仓库中,就根据这俩ID去找项目点击Next,后面步骤可以不用修改
点击Next,点击Finish
进入界面后,IDEA自动配置相关信息,右下角有个Enable Auto-Import,点击它,若第一次使用maven,那么它自动去maven中央仓库去下载基本包在本地仓库中目录结构创建(先去了解maven标准目录结构,哪些文件应放在哪里,有什么功能等)
1.首先在main创建一个java文件夹,用于放java代码
2.配置目录属性
点击右上角图标
配置java文件夹属性
相同步骤,配置resource文件夹属性
还有test文件夹,我这里就没创建了
3.下一步进行文件创建
- 现在到了非常重要的一步,在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/maven-v4_0_0.xsd"> <!--项目创建时自动配置的,可以不用管--> <modelVersion>4.0.0</modelVersion> <groupId>flysky.show</groupId> <artifactId>MavenTestSeven</artifactId> <packaging>war</packaging> <version>1.0-SNAPSHOT</version> <name>MavenTestSeven Maven Webapp</name> <url>http://maven.apache.org</url> <!--版本控制,这是自己添加的--> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <spring.version>4.3.10.RELEASE</spring.version> <hibernate.version>5.2.10.Final</hibernate.version> <jackson.version>2.5.0</jackson.version> </properties> <dependencies> <!--Junit单元测试--> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency> <!-- spring基本依赖包配置 --> <!--AOP联盟的API包,里面包含了针对面向切面的接口--> <dependency> <groupId>aopalliance</groupId> <artifactId>aopalliance</artifactId> <version>1.0</version> </dependency> <!--Spring的面向切面编程,提供AOP(面向切面编程)实现 --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-aop</artifactId> <version>${spring.version}</version> </dependency> <!--Spring提供对AspectJ框架的整合--> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-aspects</artifactId> <version>${spring.version}</version> </dependency> <!--SpringIOC基础实现--> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-beans</artifactId> <version>${spring.version}</version> </dependency> <!--Spring核心组件--> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> <version>${spring.version}</version> </dependency> <!--为Spring 核心提供了大量扩展。可以找到使用Spring ApplicationContext特性时所需的全部类--> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>${spring.version}</version> </dependency> <!--Spring-context的扩展支持,用于MVC方面 --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context-support</artifactId> <version>${spring.version}</version> </dependency> <!--Spring表达式语言 --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-expression</artifactId> <version>${spring.version}</version> </dependency> <!--Spring对服务器的代理接口--> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-instrument</artifactId> <version>${spring.version}</version> </dependency> <!--Spring对tomcat连接池的集成--> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-instrument-tomcat</artifactId> <version>4.3.12.RELEASE</version> </dependency> <!--包含对Spring 对JDBC 数据访问进行封装的所有类--> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-jdbc</artifactId> <version>${spring.version}</version> </dependency> <!--为简化jms api的使用而做的简单封装,消息服务--> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-jms</artifactId> <version>${spring.version}</version> </dependency> <!--为集成messaging api和消息协议提供支持--> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-messaging</artifactId> <version>${spring.version}</version> </dependency> <!--对象/关系型映射,用于整合其他ORM框架,例如Hibernate--> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-orm</artifactId> <version>${spring.version}</version> </dependency> <!--Spring对于object/xml映射的支持,可以让JAVA与XML之间来回切换--> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-oxm</artifactId> <version>${spring.version}</version> </dependency> <!--单元测试和集成测试的简单封装--> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-test</artifactId> <version>${spring.version}</version> <scope>test</scope> </dependency> <!--为JDBC、Hibernate、JDO、JPA等提供的一致的声明式和编程式事务管理--> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-tx</artifactId> <version>${spring.version}</version> </dependency> <!--SpringMVC支持WEB端应用部署架构--> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-web</artifactId> <version>${spring.version}</version> </dependency> <!--REST Web服务和Web应用的视图控制器的实现 --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>${spring.version}</version> </dependency> <!--Spring框架的Portlet MVC模块基于Web MVC模块的Portlet实现--> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc-portlet</artifactId> <version>4.3.12.RELEASE</version> </dependency> <!--提供 Socket通信, web端的推送功能,包括对STOMP支持 --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-websocket</artifactId> <version>${spring.version}</version> </dependency> <!-- Hibernate基本配置 --> <!--Hibernate核心包--> <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-core</artifactId> <version>${hibernate.version}</version> </dependency> <!--hibernate-c3p0数据源--> <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-c3p0</artifactId> <version>5.2.12.Final</version> </dependency> <dependency> <groupId>org.hibernate.common</groupId> <artifactId>hibernate-commons-annotations</artifactId> <version>5.0.1.Final</version> </dependency> <!--使用EntityManager实现JPA--> <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-entitymanager</artifactId> <version>4.3.9.Final</version> </dependency> <!--hibernate-jpa--> <dependency> <groupId>org.hibernate.javax.persistence</groupId> <artifactId>hibernate-jpa-2.1-api</artifactId> <version>1.0.0.Final</version> </dependency> <!--解析HQL需要--> <dependency> <groupId>org.antlr</groupId> <artifactId>antlr4</artifactId> <version>4.7</version> </dependency> <dependency> <groupId>com.fasterxml</groupId> <artifactId>classmate</artifactId> <version>1.3.4</version> </dependency> <!--Jakarta的通用日志记录包--> <dependency> <groupId>commons-logging</groupId> <artifactId>commons-logging</artifactId> <version>1.2</version> </dependency> <!--Hibernate操作XML--> <dependency> <groupId>org.dom4j</groupId> <artifactId>dom4j</artifactId> <version>2.1.0</version> </dependency> <dependency> <groupId>org.jboss</groupId> <artifactId>jandex</artifactId> <version>2.0.3.Final</version> </dependency> <!--字节码编辑工具--> <dependency> <groupId>org.javassist</groupId> <artifactId>javassist</artifactId> <version>3.20.0-GA</version> </dependency> <!--日志输出--> <dependency> <groupId>org.jboss.logging</groupId> <artifactId>jboss-logging</artifactId> <version>3.3.1.Final</version> </dependency> <dependency> <groupId>org.jboss.spec.javax.transaction</groupId> <artifactId>jboss-transaction-api_1.2_spec</artifactId> <version>1.0.0.Final</version> </dependency> <!--C3P0依赖jar包--> <dependency> <groupId>com.mchange</groupId> <artifactId>mchange-commons-java</artifactId> <version>0.2.14</version> </dependency> <!-- 其他配置 --> <!-- c3p0数据源 --> <dependency> <groupId>com.mchange</groupId> <artifactId>c3p0</artifactId> <version>0.9.5-pre10</version> </dependency> <!-- json --> <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.3</version> </dependency> <!-- servlet --> <dependency> <groupId>javax.servlet</groupId> <artifactId>servlet-api</artifactId> <version>3.0-alpha-1</version> </dependency> <dependency> <groupId>javax.servlet</groupId> <artifactId>jstl</artifactId> <version>1.2</version> </dependency> <!-- mysql连接 --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.39</version> </dependency> <!--整合各志框架种日的工具--> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>1.7.21</version> </dependency> <!-- log4j --> <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.17</version> </dependency> </dependencies> <build> <finalName>MavenTestSeven</finalName> <plugins> <!--用来在maven构建生命周期的test phase执行一个应用的单元测试--> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <version>2.4.2</version> <configuration> <skipTests>true</skipTests> </configuration> </plugin> <!--maven打包工具--> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-war-plugin</artifactId> <version>2.3</version> <configuration> <webXml>src/main/webapp/WEB-INF/web.xml</webXml> </configuration> </plugin> <!-- generate java doc --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-javadoc-plugin</artifactId> <version>2.9.1</version> <configuration> <javadocDirectory>target/javadoc</javadocDirectory> <reportOutputDirectory>target/javadoc</reportOutputDirectory> <charset>UTF-8</charset> <encoding>UTF-8</encoding> <docencoding>UTF-8</docencoding> <show>private</show> </configuration> </plugin> </plugins> </build></project>
分析:
没有用maven时,我们要在项目中手动去导入jar包,例如下图:
这很麻烦,而用了maven后,直接在pom.xml文件中配置就可以了。maven先在本地仓库中去查找是否有该jar包,若没有就去中央仓库下载到本地仓库。我们可以发现,若本地仓库中没有jar包,在IDEA右下角进度条中,时间要长一点,那是在中央仓库中下载jar包,而本地仓库中有,则一瞬间就完成了配置。
对比:pom.xml文件中的配置,就相当于没有用maven时,去手动下载jar包,而使用了maven后,在配置里面就直接解决了
问题:该如何去配置pom.xml文件?
我作为一个刚接触maven的新手来说,这也是一个很纠结的问题,我该整么去配置呢?看其他的博客再copy下来?不,治标不治本,下面讲讲我自己的步骤。
答:没用maven时,肯定有搭建框架的jar包呀,原来项目需要用到哪些jar包,我就去中央仓库中找,那里一般都有的,然后看它的maven配置介绍,copy下来放在pom.xml中就行了,IDEA自动帮你下载,这样就完成了一个jar包的导入。还是直接看图吧
1.例如,我在原来的项目中,看到有antlr-2.7.7.jar这个文件
2.然后去maven中央仓库,地址:http://mvnrepository.com/ 然后直接搜索关键字,一般第一个就是
3.选择版本,这里我们随便选择一个
4.查看maven配置语句,copy下来,放在pom.xml文件中
这样就完成了一个jar包的导入,假如很多jar包版本号都是一样的,可以使用配置文件最前面那个版本统一标识统一配置。下面进行其他文件配置
web.xml+applicationContext.xml文件+dispatcher-servlet.xml+config.xml文件配置
1.web.xml文件
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd" ><web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" version="3.1"> <display-name>Archetype Created Web Application</display-name> <!--加载log4j配置文件--> <context-param> <param-name>log4jConfigLocation</param-name> <param-value>classpath:/log4j.properties</param-value> </context-param> <listener> <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class> </listener> <!--加载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>dispatcher</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:/dispatcher-servlet.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> <!--字符配置为UTF-8--> <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>forceEncoding</param-name> <param-value>true</param-value> </init-param> </filter> <filter-mapping> <filter-name>characterEncodingFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <!--项目启动时,加载欢迎页--> <welcome-file-list> <welcome-file>/index.jsp</welcome-file> </welcome-file-list></web-app>
2.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:context="http://www.springframework.org/schema/context" 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.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd"> <!--配置自动扫描的包--> <context:component-scan base-package="flysky.demo"> <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller"/> <context:exclude-filter type="annotation" expression="org.springframework.web.bind.annotation.ControllerAdvice"/> </context:component-scan> <!--加载属性文件--> <context:property-placeholder location="classpath:/config.properties"/> <!--开启事务注解--> <tx:annotation-driven/> <!--导入数据源--> <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"> <property name="driverClass" value="${jdbc.driver}"/> <property name="jdbcUrl" value="${jdbc.url}"/> <property name="user" value="${jdbc.username}"/> <property name="password" value="${jdbc.password}"/> </bean> <!--配置bean实例,若使用@Component注解就可以不用写--> <bean id="user" class="flysky.demo.entity.User"/> <!--配置jdbcTemplate--> <!--配置 EntityManagerFactory--> <bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean"> <property name="dataSource" ref="dataSource"/> <!-- 配置 JPA 提供商的适配器. 可以通过内部 bean 的方式来配置 --> <property name="jpaVendorAdapter"> <bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter"/> </property> <!-- 配置实体类所在的包 --> <property name="packagesToScan" value="flysky.demo.entity"/> <!-- 数据库基本配置 --> <property name="jpaProperties"> <props> <prop key="hibernate.dialect">${hibernate.dialect}</prop> <prop key="hibernate.show_sql">${hibernate.show_sql}</prop> <prop key="hibernate.format_sql">${hibernate.format_sql}</prop> <prop key="hibernate.hbm2ddl.auto">${hibernate.hbm2ddl.auto}</prop> </props> </property> </bean> <!-- 配置 JPA 使用的事务管理器 --> <bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager"> <property name="entityManagerFactory" ref="entityManagerFactory"/> </bean> <!-- 配置支持基于注解是事务配置 --> <tx:annotation-driven transaction-manager="transactionManager"/></beans>
3.dispatcher-servlet.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: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/context http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd"> <!--配置自动扫描的包--> <context:component-scan base-package="flysky.demo"> <context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/> <context:include-filter type="annotation" expression="org.springframework.web.bind.annotation.ControllerAdvice"/> </context:component-scan> <!--配置视图解析器:把返回的方法解析为实际视图--> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix" value="/WEB-INF/views/html/"/> <property name="suffix" value=".jsp"/> </bean> <!--根路径加载静态资源文件--> <mvc:resources location="/WEB-INF/views/css/" mapping="/views/css/**" /> <mvc:resources location="/WEB-INF/views/js/" mapping="/views/js/**" /> <mvc:resources location="/WEB-INF/views/img/" mapping="/views/img/**" /> <mvc:resources location="/WEB-INF/views/html/" mapping="/views/html/**" /> <!--两个必要配置--> <mvc:default-servlet-handler/> <mvc:annotation-driven/></beans>
4.config.xml文件配置
#application configs#jdbc c3p0 configjdbc.driver = com.mysql.jdbc.Driverjdbc.url = jdbc:mysql://localhost:3306/mytest?useUnicode=true&characterEncoding=UTF-8jdbc.username = rootjdbc.password = admin#hibernate confighibernate.dialect = org.hibernate.dialect.MySQLDialecthibernate.show_sql = truehibernate.format_sql = falsehibernate.hbm2ddl.auto = update
5.log4j.properties文件配置,这个网上都有,我还是贴出来吧
### set log levels ###log4j.rootLogger = INFO , C , D , E ### console ###log4j.appender.C = org.apache.log4j.ConsoleAppenderlog4j.appender.C.Target = System.outlog4j.appender.C.layout = org.apache.log4j.PatternLayoutlog4j.appender.C.layout.ConversionPattern = [springmvc_hibernate][%p] [%-d{yyyy-MM-dd HH:mm:ss}] %C.%M(%L) | %m%n### log file ###log4j.appender.D = org.apache.log4j.DailyRollingFileAppenderlog4j.appender.D.File = ../logs/springmvc_hibernate_demo.loglog4j.appender.D.Append = truelog4j.appender.D.Threshold = INFO log4j.appender.D.layout = org.apache.log4j.PatternLayoutlog4j.appender.D.layout.ConversionPattern = [springmvc_hibernate][%p] [%-d{yyyy-MM-dd HH:mm:ss}] %C.%M(%L) | %m%n### exception ###log4j.appender.E = org.apache.log4j.DailyRollingFileAppenderlog4j.appender.E.File = ../logs/springmvc_hibernateerror.log log4j.appender.E.Append = truelog4j.appender.E.Threshold = ERROR log4j.appender.E.layout = org.apache.log4j.PatternLayoutlog4j.appender.E.layout.ConversionPattern = [FundsManagerSys][%p] [%-d{yyyy-MM-dd HH:mm:ss}] %C.%M(%L) | %m%n
ok,完成了,下面就可以启动tomcat看看,有什么问题再慢慢解决,若在原来的SSH项目中跑着没问题,用了Maven后却报错,那么肯定是pom.xml文件配置出了问题,要么是有些包依赖没配置到,要么就是多配置了起冲突,结合问题再自己看看吧,多弄几次就熟悉了。
小编也是刚入坑的新人,若文章中有地方理解错误,还请大神多多指点!
- 使用IDEA搭建Maven+SpringMVC+Spring+Hibernate环境
- Idea+Maven+Spring+SpringMVC+MyBatis环境搭建
- 在IDEA下 spring+springMVC+hibernate+maven框架搭建
- IDEA+SpringMVC+Maven环境搭建
- Maven搭建springmvc hibernate环境
- 使用intellij idea搭建MAVEN+SSM(Spring+SpringMVC+MyBatis)框架
- 使用intellij idea搭建MAVEN+SSM(Spring+SpringMVC+MyBatis)框架
- Spring+Hibernate+SpringMVC+Maven搭建
- 搭建springMvc+spring+hibernate+maven开发环境001
- 搭建springMvc+spring+hibernate+maven开发环境002
- 搭建springMvc+spring+hibernate+maven开发环境003
- idea 搭建maven构建的springmvc+hibernate
- 使用intellij idea搭建spring-springmvc-mybatis整合框架环境
- springMVC+maven+mybatis+Intellij IDEA环境搭建
- springMVC+maven+mybatis+Intellij IDEA环境搭建
- springMVC+maven+mybatis+Intellij IDEA环境搭建
- springMVC+maven+mybatis+Intellij IDEA环境搭建
- IntelliJ IDEA 使用maven 集成SpringMVC+Hibernate
- python下如何安装.whl包?
- 数据结构第五周项目3--括号的匹配
- Android 之 APP上架应用宝平台
- Linux驱动学习--初识PCI驱动(二)
- car identify Location
- 使用IDEA搭建Maven+SpringMVC+Spring+Hibernate环境
- POJ 1456 Supermarket
- JAVA继承
- leetcode 68. Text Justification
- spring配置文件加载
- css滚动条使用
- 全新的.NET解释器
- sql函数笔记
- 【第十一周项目3】图遍历算法实现(2)广度优先遍历(BFS)