springBoot整合SSM实例过程详解

注意:本文章直接教学在IDEA中用springBoot构建SSM项目,具体springBoot相关原理下一篇文章讲述,该文章注重使用。

引入:

虽然本文注重springBoot的使用,但是我还是要说一下,前面我们已经学了ssm框架,也学了用maven管理项目,为什么还要学springBoot?在使用ssm的时候,我们还记得需要很多配置文件,比如spring.xml,spring.xml,applicaton.xml等,说实话这么多配置文件不是我们想看见的,所以springBoot就来了,它简化了很多的配置文件,依赖。其中最重要的就是自动配置,他为大量的开发环境都配备了自动配置,只用按照springBoot的规则来配置,就可以完成对应的环境配置。比如:要使用mybatis,需要配置数据源,springBoot已经有了自动配置数据源的能力,你只需要根据他的要求来定义一些数据源的内容就可以(其实听起来好像也没有简化)。

1.创建项目

在IDEA中创建一个maven项目,不选择骨架。

项目完成思路:
在这里插入图片描述

2.使用springBoot来实现spring合springMVC

maven项目中的pom文件,在pom文件中继承springboot的资源

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.5.9.RELEASE</version>
    </parent>

然后,就可以使用spring和springMVC了,和之前比起来,确实少了很多配置文件。

3.写一个项目启动类:

springBoot构架的项目,都需要通过该启动类作为入口启动。
这里有两个注解@SpringBootApplication,@MapperScan(“cn.tedu.mapper”),这里暂时不做解释,下一篇文章会详细解释,现在只需要记住,这里是包扫描和扫描接口类,所以该项目启动类要放在需要扫描的包同级或上级。

@SpringBootApplication
@MapperScan("cn.tedu.mapper")
public class StarterOU {
    public static void main(String[] args) {
        SpringApplication.run(StarterOU.class,args);
    }
}

4.配置web

上面写了启动类,那么肯定会有疑问,我们的项目不是一个web项目吗?为什么会使用main方法来启动?不是应该打成war包放到tomcat上吗?这是因为springBoot内嵌了web容器,所以就可以通过启动类来使用tomcat。
web配置的依赖也是在pom文件来声明:

<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
</dependency>

5.配置持久层:

我们需要在pom中配置这些依赖:
spring-boot-starter-jdbc:jdbc依赖,让项目能使用jdbc
mysql-connector-java:msyql依赖,让项目能支持mysql
mybatis-spring-boot-starter:mybatis整合,让项目支持mybatis框架
druid:德鲁伊连接池

       <!--starter-jdbc-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-jdbc</artifactId>
        </dependency>
        <!--mysql-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
        </dependency>
        <!--mybatis-->
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>1.3.0</version>
        </dependency>
        <!--druid-->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
            <version>1.1.20</version>
        </dependency>

这里需要说明一下,resource文件中放的是额外文件:
在这里插入图片描述
持久层的配置还没有结束,接下来我们需要配置数据源的相关信息,以及mappers中的映射文件位置配置,配置位置就是application.properties:


server.port=8092

spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
spring.datasource.username=root
spring.datasource.url=jdbc:mysql:///microtest
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.password=root

mybatis.mapper-locations=classpath:mappers/*.xml
mybatis.configuration.cache-enabled=false
mybatis.configuration.map-underscore-to-camel-case=true

然后再写mappers中的映射文件:

<mapper namespace="cn.tedu.mapper.UserMapper">
    <select id="selectUserByUserid" parameterType="String" resultType="cn.tedu.domain.User">
             select *from t_user where user_id=#{userId}
    </select>
    <update id="updateUserPointsById">
        update t_user set points=points+#{point}
        where user_id=1;
    </update>
</mapper>
<mapper namespace="cn.tedu.mapper.OrderMapper">
    <!--根据id查询订单功能-->
    <select id="selectOrderById" resultType="cn.tedu.domain.Order">
        select * from t_order where order_id=#{orderId};
    </select>
</mapper>

写mapper文件中的接口:

public interface OrderMapper {
    Order selectOrderById(String orderId);
}

public interface UserMapper {
    User selectUserByUserid(String userId);
    void updateUserPointsById(int points);
}

到此为止,持久化层完成。

6.服务层代码书写:

(下面的两层之前已经写过很多遍了,这里就不做过多解释)
该接口会在controller层使用

public interface UserService {
    User queryUserPoint(String userId);
}

调用mapper文件中的接口方法->映射文件中的sql

@Service
public class UserServiceImp implements UserService {

    @Autowired
    private UserMapper UserMapper;
    @Override
    public User queryUserPoint(String userId) {
        return UserMapper.selectUserByUserid(userId);
    }
}

7.控制层代码书写

@Controller
public class UserController {
    @Autowired
    private UserService UserService;

    @RequestMapping(value = "/user/query/point",method = RequestMethod.GET)
    @ResponseBody
    public User queryUserPoint(String userId){
           return UserService.queryUserPoint(userId);
    }

}

8.启用

直接在启动类中启动,然后去浏览器输入地址:
如下控制台,则表示启动成功。
在这里插入图片描述
之前在application.properties中配置了端口信息,所以不是8080,这里需要注意,这样就可以发现,我们没有打war包,没有使用外部tomcat,而是使用springBoot内部的tomcat。
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_42596778/article/details/106290692
今日推荐