我是靠谱客的博主 难过小懒猪,最近开发中收集的这篇文章主要介绍关于maven的基本用法,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

一、了解maven的本地仓库及jar包管理

1、maven的环境准备

在pom.xml文件中,导入坐标时,如果出现一个坐标所引用的jar的版本不一致时。遵循优先声明原则在前面的声明的坐标,jar引用优先。

通俗讲:谁先导入 ,就引用谁的。

------- jar包冲突解决方式:

1、第一声明原则:谁先导入 ,就引用谁的

2、直接和传递导入:直接导入jar包。传递导入:导入一个坐标中包含需要的jar包

3、直接排除法:通过exclusions

------- pom.xml文件中的标签的用法

1、dependencies :导入pom坐标的父级标签

2、plugins :导入插件

3、关于pom文件中,导入compiler和tomcat的标签介绍

<plugins>
            <plugin>
                <groupId>org.apache.tomcat.maven</groupId>
                <artifactId>tomcat7-maven-plugin</artifactId>
                <version>2.2</version>
                <!-- 导入tomcat插件时,一般会配置tomcat的编码格式和端口-->
                <configuration>
                    <uriEncoding>utf-8</uriEncoding>
                    <port>9999</port>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.2</version>
                <configuration>
                    <!-- 源代码的JDK依赖版本-->
                    <source>1.8</source>
                    <!-- 当前编译的JDK依赖版本-->
                    <target>1.8</target>
                    <!-- 编译时的编码格式-->
                    <encoding>utf-8</encoding>
                </configuration>
            </plugin>
        </plugins>

4、关于idea工具中,创建的工程配置文件 *.iml的作用

特点:

	1)文件是自动生成,不用手动设置

	2)管理的是当前工程(module)中所有加载的jar的相关参数(路径、jar包,被哪个module或project引用)

二、基于maven搭建父子工程

及mvc设计模式在工程构建中的应用[重点]

1、环境搭建(applicationContext-dao.xml文件的配置)

数据库操作层的框架,配置文件的套路:

jdbc -- 8个步骤(加载驱动---配置连接池Connection---拼接Sql --- 获取PreparaStatement执行sql语句的工具类 ---- 获取查询结果resultset ----遍历查询结果-----封装查询结果)

2、mybatis框架整合配置

1)配置pom.xml的坐标(加载驱动)

<dependency>
     <!-- 配置mysql驱动-->
     <groupId>mysql</groupId>
     <artifactId>mysql-connector-java</artifactId>
     <version>${mysql.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>1.3.0</version>
</dependency>

2)配置连接池(德鲁伊)

<bean id="dataSource"
      class="com.alibaba.druid.pool.DruidDataSource">
    <property name="driverClassName" value="com.mysql.jdbc.Driver"/>
    <!--主要根据连接的数据库,对 url、username和password进行设置。都指的连接的数据库的相关参数-->
     <property name="url" value="jdbc:mysql:///maven"/>
    <property name="username" value="root"/>
    <property name="password" value="123456"/>
</bean>

3)扫描mybatis的dao的配置

<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
    <property name="basePackage" value="com.caiwen.dao"/>
</bean>

4)扫描实体类的配置

<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
    <property name="dataSource" ref="dataSource"/>
    <!--扫描pojo包,给包下所有pojo对象起别名-->
    <property name="typeAliasesPackage" value="com.caiwen.domain"/>
</bean>

5)编写测试用例,测试配置的环境(特别注意,配置完成后,必须要先测试)

使用的测试jar:junit

测试类中的@Before的编写

 @Before
    public void init(){
       //读取Spring的配置文件
        ApplicationContext ac = new ClassPathXmlApplicationContext("spring/applicationContext-dao.xml");
        itemsDao = ac.getBean(ItemsDao.class);
    }

编写一个查询方法,测试dao的配置是否正确

@Test
public void testFindById(){
     Items items = itemsDao.findById(1);
     System.out.println(items);
}

3、mybatis添加事务配置

1)配置事务Transactional

<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
     <!-- 被事务所管理的连接池 -->
     <property name="dataSource" ref="dataSource"/>
</bean>

2)配置事务的通知

<!--配置事务的通知-->
<tx:advice id="advice">
     <tx:attributes>
          <tx:method name="save*" propagation="REQUIRED"/>
          <tx:method name="add*" propagation="REQUIRED"/>
          <tx:method name="update*" propagation="REQUIRED"/>
          <tx:method name="delete*" propagation="REQUIRED"/>
          <tx:method name="find*" read-only="true"/>
          <tx:method name="select*" read-only="true"/>
          <tx:method name="get*" read-only="true"/>
          <tx:method name="*" propagation="REQUIRED"/>
     </tx:attributes>
</tx:advice>

3)配置切入点

<aop:config>
<!-- 下面配置表示 com.itheima.service.impl下所有子包及java文件都会触发事务的管理 -->
        <aop:pointcut id="pointcut" expression="execution(* com.caiwen.service.impl.*.*(..))"/>
     <!-- 将事务的配置和切入点进行整合-->
     <aop:advisor advice-ref="advice" pointcut-ref="pointcut"/>
</aop:config>

4)配置完成后,进行测试

什么是事务?

事务是管理一组对数据库操作的步骤。

如何测试事务?

在一个service的方法中,对数据库的数据进行多次增、删或改的操作,然后手动抛一个异常。程序执行完后,看异常抛出之前的数据操作是否会回滚,如果回滚,事务则生效,否则 不生效。

4、web层的编写实现

1)MVC设计模式中,C-controller,主要实现与前端界面的交互。主要做两件事情:

	1)接收前端传递的参数并校验参数正确 

	2)返回前端请求的结果集	

2)对配置文件进行配置。web.xml和springmvc.xml

web.xml

<!--编码过滤器 解决post请求时的中文乱码-->
  <filter>
    <filter-name>encoding</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>encoding</filter-name>
    <url-pattern>/*</url-pattern>
  </filter-mapping>

 <!--配置spring核心监听器-->
  <listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
  </listener>
  <!--重新指定spring配置文件的路径-->
  <context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>classpath:applicationContext.xml</param-value>
  </context-param>

 <!--springmvc的核心servlet-->
  <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:springmvc.xml</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>springmvc</servlet-name>
    <url-pattern>/</url-pattern>
  </servlet-mapping>

springmvc.xml

<!--组件扫描-->
    <context:component-scan base-package="com.itheima.controller"/>

    <!--处理器映射器,处理器适配器-->
    <mvc:annotation-driven>
        <mvc:message-converters>
            <!-- 指定springmvc json转换工具包使用fastjson -->
            <bean class="com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter"></bean>
        </mvc:message-converters>
    </mvc:annotation-driven>

    <!--视图解析器-->
    <bean id="internalResourceViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/WEB-INF/pages/"/>
        <property name="suffix" value=".jsp"/>
    </bean>

    <!--释放静态资源-->
    <mvc:default-servlet-handler/>

5、父工程与子module的关系

1)模块可以直接使用父工程中添加的所有pom坐标

2)模块之间可以通过depenece进行相互的依赖

3)父子工程之间的启动:

如果要对所有模块进行clean的操作,则只需要对父工程(root)执行clean

如果是要安装,则只需对root工程执行 install

注意:

如果修改了模块中的前端代码,为了防止直接install时,前端代码没有更新,最好是先执行clean再执行install

maven阶段学习小结

1、关于idea工具如何来关联maven环境

2、maven的pom文件的基本的标签

	1)确定一个仓库jar包的三个核心坐标

		groupId

		artifactId

		version

	2)properties  定义全局参数,配置坐标的版本号

	3)dependencyManagement  锁定坐标版本

	4)dependency 引入pom坐标的标签

	5) plugin 引入外部插件

	6)resource标签

<resources>
    <resource>
         <!-- 编译工程时,设置额外编译的文件目录 -->
        <directory>${basedir}/src/main/java</directory>
        <includes>
            <include>**/*.properties</include>
            <include>**/*.xml</include>
        </includes>
    </resource>
    <resource>
        <directory>${basedir}/src/main/resources</directory>
    </resource>
</resources>

最后

以上就是难过小懒猪为你收集整理的关于maven的基本用法的全部内容,希望文章能够帮你解决关于maven的基本用法所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(41)

评论列表共有 0 条评论

立即
投稿
返回
顶部