基于idea搭建springmvc+mybatis环境介绍

一、了解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.mavengroupId>
                <artifactId>tomcat7-maven-pluginartifactId>
                <version>2.2version>
                
                <configuration>
                    <uriEncoding>utf-8uriEncoding>
                    <port>9999port>
                configuration>
            plugin>
            <plugin>
                <groupId>org.apache.maven.pluginsgroupId>
                <artifactId>maven-compiler-pluginartifactId>
                <version>3.2version>
                <configuration>
                    
                    <source>1.8source>
                    
                    <target>1.8target>
                    
                    <encoding>utf-8encoding>
                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>
     
     <groupId>mysqlgroupId>
     <artifactId>mysql-connector-javaartifactId>
     <version>${mysql.version}version>
dependency>
	
 <dependency>
      <groupId>org.mybatisgroupId>
      <artifactId>mybatisartifactId>
      <version>${mybatis.version}version>
dependency>
<dependency>
     <groupId>org.mybatisgroupId>
     <artifactId>mybatis-springartifactId>
     <version>1.3.0version>
dependency>

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

<bean id="dataSource"
      class="com.alibaba.druid.pool.DruidDataSource">
    <property name="driverClassName" value="com.mysql.jdbc.Driver"/>
    
     <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.itheima.dao"/>
bean>

4)扫描实体类的配置

<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
    <property name="dataSource" ref="dataSource"/>
    
    <property name="typeAliasesPackage" value="com.itheima.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>

        <aop:pointcut id="pointcut" expression="execution(* com.itheima.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


  <filter>
    <filter-name>encodingfilter-name>
    <filter-class>org.springframework.web.filter.CharacterEncodingFilterfilter-class>
    <init-param>
      <param-name>encodingparam-name>
      <param-value>UTF-8param-value>
    init-param>
    <init-param>
      <param-name>forceEncodingparam-name>
      <param-value>trueparam-value>
    init-param>
  filter>
  <filter-mapping>
    <filter-name>encodingfilter-name>
    <url-pattern>/*url-pattern>
  filter-mapping>
 
  <listener>
    <listener-class>org.springframework.web.context.ContextLoaderListenerlistener-class>
  listener>
  
  <context-param>
    <param-name>contextConfigLocationparam-name>
    <param-value>classpath:applicationContext.xmlparam-value>
  context-param>
 
  <servlet>
    <servlet-name>springmvcservlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServletservlet-class>
    <init-param>
      <param-name>contextConfigLocationparam-name>
      <param-value>classpath:springmvc.xmlparam-value>
    init-param>
    <load-on-startup>1load-on-startup>
  servlet>
  <servlet-mapping>
    <servlet-name>springmvcservlet-name>
    <url-pattern>/url-pattern>
  servlet-mapping>

springmvc.xml


    <context:component-scan base-package="com.itheima.controller"/>

    
    <mvc:annotation-driven>
        <mvc:message-converters>
            
            <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/javadirectory>
        <includes>
            <include>**/*.propertiesinclude>
            <include>**/*.xmlinclude>
        includes>
    resource>
    <resource>
        <directory>${basedir}/src/main/resourcesdirectory>
    resource>
resources>

你可能感兴趣的:(java技术)