Java学徒之路——SpringBoot+MyBatis的后端服务调用顺序

        扫盲了Java基本语法,证明自己不是软件天才,要靠一点一滴;从0开始时,最难理解的是各种概念和缩写,温习了无数遍,仍旧懵懵懂懂。开始想弄明白SpringBoot运行过程,花了很长时间也没看到全貌,只理解如下大概:

选材:使用了SpringBoot,Maven,Mybatis,*.yml配置文件

主体流程

        启动类(main方法)

        ——》controller类中的方法

        ——》service类中的方法(业务代码)

        ——》Mybatis的mapper目录下接口类

        ——》mapper.XML(写SQL/SP)

        ——》读取application.yml配置的数据库名,数据库,用户名和密码

        ——》数据库

【1入口】一个SpringBoot一定要有个启动类,叫什么无所谓,能定位这个类是启动类的是@SpringBootApplication和main方法:

   @SpringBootApplication

   public static void main(String[] args) {

        SpringApplication.run(TestSbApplication.class, args);
   }

【2第二道门】有了启动类,就有了入口;走进入口就会找对外公布的服务接口:Controller。所以必然会有一个目录存放,目录名字随便起,起作用的是目录中要有一个类,类中要有方法,供外部调用:

@RestController //没有它,这个类就是个普通类,有了它,从main进入后它就是第二道门
@RequestMapping("/operateBooks") //外部访问“分类门/职能门”,门多的时候有用,自己多建几个就有体会
public class BookController {

    @Autowired
    private BookService bookService;

    @PostMapping("query")
    public List<Book> getAllBooks(Integer id ,String name){
        return bookService.getAllBooks2(id,name); //调用Service层的“接口方法”而不是类方法
    }
}

注:

                (1)可以有多个对外服务接口,可以有多个方法。

                (2)为什么能直接调用接口内方法就可以实现,归公于接口方法上的@Autowired,实现了自动注册,即容器的自动创建Service service = new ServiceImpl(多态的属性:运行看左 = 编译和执行看右);

【3实际加工厂】有了服务接口,但实现一般不在这里写,会调用Service层。高级点的写法,在Service层分2部分,一部分是接口,一部分是service类。接口用来继承,类用来写复杂业务逻辑。

@Service //有了它,这个类才被赋予服务类,一系列内部操作才能用,包括自动创建
public class BookServiceImpl implements BookService {
    private static final long serialVersionUID = 1L;

    @Autowired
    private BookMapperInterface bookMapperInterface;

    @Override
    public List<Book> getAllBooks2(Integer id,String name){
        Logger logger = LoggerFactory.getLogger(BookController.class);
        logger.info("BookServiceImpl--前");
        return bookMapperInterface.getAllBooks(id,name);
    }
}

【4数据库链接】进入service类,其实就可以反馈给浏览器内容了,包括静态内容,包括逻辑处理。但我们需要数据,一般都要用数据库,所以从这里去找DB里的数据。访问数据库,我们可以直接连,但都会选择ORM框架,类似:Hibernate(Nhibernate),iBatis,mybatis,EclipseLink,JFinal。 我们选择了简单点的mybatis。  

       Mybatis 有2部分,一个是接口,一个是XML文件。

      -----------接口------------------------

      @Mapper   //有了它,这个接口才能入Mybatis的眼,才能自动注册和执行
      @Repository
      public interface BookMapperInterface {

             List<Book> getAllBooks(Integer book_id,String book_name) ;

             Integer insertBooks(@Param("book") Book book);

             Integer insertBooks3(@Param("book") List<Book> book);

        }

      -----------XML文档------------------------ 

【5配置】做完上面4步,核心代码写完了,但闭眼一想还需要网址、端口号,这些都在application.yml中设置

server:
  port: 8080
spring:
  application:
    name: test3
  datasource:
    driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
    url: jdbc:sqlserver://localhost;database=TEST3
    username: sa
    password: 123
  main:
    allow-bean-definition-overriding: true
mybatis:
  mapper-locations: classpath:mybatis/mapper/*.xml
  type-aliases-package: com.demo.springboot.pojo

因为使用Maven,所以还需要设置下POM.xml,这里面核心是处理依赖,就是想用什么现成的包或有名有姓的包,都要加在里面,才能在自己的类中引用和使用。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值