maven

3.1 需求描述

本案例基于maven构建 SSM(Spring+SpringMVC+Mybatis)工程,通过maven坐标进行依赖管理。最终实现根据 id 查询商品信息的功能。

3.2 构建maven工程

1.数据库环境搭建 

    ①创建数据库ssmtest



    ②创建商品表item

[AppleScript] 纯文本查看 复制代码

?

1

2

3

4

5

6

7

8

CREATE TABLE `item` (

     `id` int(11) NOT NULL auto_increment,

     `name` varchar(255) default NULL,

     `price` float default NULL,

     `createtime` datetime default NULL,

     `detail` varchar(255) default NULL,

     PRIMARY KEY  (`id`)

   ) ENGINE=InnoDB DEFAULT CHARSET=utf8


   
2.maven项目构建 

①创建maven web项目

②配置pom.xml文件

③实现spring+mybatis整合

创建POJO类

  

[AppleScript] 纯文本查看 复制代码

?

1

2

3

4

5

6

7

8

public class Item {

  private Integer id;

  private String name;

  private Float price;

  private Date createtime;

  private String detail;

  //省略setter、getter

  }



持久层DAO接口编写
 

[AppleScript] 纯文本查看 复制代码

?

1

2

3

public interface ItemMapper {

       public Item findById(int id);

}


Mapper映射文件编写

   

[AppleScript] 纯文本查看 复制代码

?

1

2

3

4

5

6

7

<?xml version="1.0" encoding="UTF-8" ?>

   <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"

   "http://mybatis.org/dtd/mybatis-3-mapper.dtd">

   <mapper namespace="com.itheima.ssm.dao.ItemMapper">

   <select id="findById" parameterType="int" resultType="item">

            select * from item where id=#{id}</select>

   </mapper>



业务层Service编写

  

[AppleScript] 纯文本查看 复制代码

?

01

02

03

04

05

06

07

08

09

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

  package com.itheima.ssm.service;

    import com.itheima.ssm.pojo.Item;

    public interface ItemService {

        public Items findById(int id);

    }

 

    @Service

    @Transactional

    public class ItemServiceImpl implements ItemService {

    @Autowired

    private ItemMapper itemMapper;

    public Item findById(int id) {

    return itemMapper.findById(id);

    }

    }

 

spring配置文件applicationContext-dao.xml编写

 

    <?xml version="1.0" encoding="UTF-8"?>

    <beans xmlns="http://www.springframework.org/schema/beans"      xmlns:context="http://www.springframework.org/schema/context"   xmlns:p="http://www.springframework.org/schema/p"       xmlns:aop="http://www.springframework.org/schema/aop"       xmlns:tx="http://www.springframework.org/schema/tx"       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"       xsi:schemaLocation="http://www.springframework.org/schema/bean       [url]http://www.springframework.org/schema/beans/spring-beans-4.0.xsd[/url]       [url]http://www.springframework.org/schema/context[/url]      [url]http://www.springframework.org/schema/context/spring-context-4.0.xsd[/url]      [url]http://www.springframework.org/schema/aop[/url]   [url]http://www.springframework.org/schema/aop/spring-aop-4.0.xsd[/url]     [url]http://www.springframework.org/schema/tx[/url]  [url]http://www.springframework.org/schema/tx/spring-tx-4.0.xsd[/url]      [url]http://www.springframework.org/schema/util[/url] [url]http://www.springframework.org/schema/util/spring-util-4.0.xsd[/url]">

    <!-- 数据库连接池 -->

    <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource">

    <!-- 驱动 -->

    <property name="driverClassName" value="com.mysql.jdbc.Driver"/>

    <!-- url -->

    <property name="url" value="jdbc:mysql://localhost:3306/ssmtest"/>

    <!-- 用户名 -->

    <property name="username" value="root"/>

    <!-- 密码 -->

    <property name="password" value="root"/></bean>

    <!-- mapper配置 --> <!-- 让spring管理sqlsessionfactory 使用mybatis和spring整合包中的 -->    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">        <!-- 数据库连接池 -->

    <property name="dataSource" ref="dataSource"/>

    <!--为指定包下的所有实体类创建别名-->

    <property name="typeAliasesPackage" value="com.itheima.ssm.pojo"/></bean>

    <!-- mapper扫描器 :用来产生代理对象-->

    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">

    <property name="basePackage" value="com.itheima.ssm.dao"></property> 

    </bean>

    </beans>

 

spring配置文件applicationContext-service.xml编写

 

④加入springmvc相关配置

 

表现层Controller编写

 

    @Controller

    @RequestMapping("/item")

    public class ItemController {

       @Autowired

       private ItemService itemService;

      @RequestMapping("/showItem/{id}")

      public String showItem(@PathVariable("id") int id, Model model){

            Item item = itemService.findById(id);

            model.addAttribute("item",item);

            return "item";  

      }

    }



springmvc.xml文件编写

    <?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans"       xmlns:context="http://www.springframework.org/schema/context"       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"      xsi:schemaLocation="http://www.springframework.org/schema/beans       http://www.springframework.org/schema/beans/spring-beans-4.0.xsd       http://www.springframework.org/schema/context      http://www.springframework.org/schema/context/spring-context-4.0.xsd">    <context:component-scan base-package="com.itheima.ssm.controller"/>
    <!--  配置视图解析器的前缀和后缀 -->
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">           <property name="prefix“ value="/WEB-INF/jsp/"></property>
        <property name="suffix" value=".jsp"></property>
    </bean>
    </beans>

jsp页面编写

配置web.xml文件



4.分模块构建maven工程

4.1 分模块构建maven工程分析

在现实生活中,汽车厂家进行汽车生产时,由于整个生产过程非常复杂和繁琐,工作量非常大,所以车场都会将整个汽车的部件分开生产,最终再将生产好的部件进行组装,形成一台完整的汽车。





4.2 maven工程的继承

在Java语言中,类之间是可以继承的,通过继承,子类就可以引用父类中非private的属性和方法。同样,在maven工程之间也可以继承,子工程继承父工程后,就可以使用在父工程中引入的依赖。继承的目的是为了消除重复代码。



4.3 maven工程的聚合

在maven工程的pom.xml文件中可以使用<modules>标签将其他maven工程聚合到一起,聚合的目的是为了进行统一操作。

例如拆分后的maven工程有多个,如果要进行打包,就需要针对每个工程分别执行打包命令,操作起来非常繁琐。这时就可以使用<modules>标签将这些工程统一聚合到maven工程中,需要打包的时候,只需要在此工程中执行一次打包命令,其下被聚合的工程就都会被打包了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值