概述
一、了解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的基本用法所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复