關於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>
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章