Spring(八)SpringBoot 集成 JPA

什么是 JPA ?

之前在 Spring Boot 工程中,一直用 Mybatis 注解方式作为持久层框架。但是 Mybatis 需要手写 SQL 语句,对于简单的项目稍显麻烦。最近发现了 JPA ,使用 JPA 我们几乎可以不用写一句 SQL 语句,非常适合 CURD 场景。JPA 是 Java Persistence API(Java持久化接口) 的缩写。JPA 让我们的应用程序以统一的方式访问持久层。JPA 是 Hibernate 的一个抽象,是一种 ORM 规范,是可以理解为是 Hibernate 功能的一个子集。

阅读更多

Spring(七)深入理解Spring MVC

我们通过 Spring Boot 来创建一个 Web 应用,发挥作用的是 Spring MVC 框架。当我们在IDE里敲入以下代码时,究竟发生了什么呢?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
@GetMapping("/")
public String hello() {
return "login";
}

@PostMapping("/login")
public ModelAndView login(LoginData loginData) {
if (LOGIN.equals(loginData.getLogin())
&& PASSWORD.equals(loginData.getPassword())) {
return new ModelAndView("success",
Collections.singletonMap("login", loginData.getLogin()));
} else {
return new ModelAndView("failure",
Collections.singletonMap("login", loginData.getLogin()));
}
}
阅读更多

Spirng(六) IoC容器探究

Spring

Spring(一)从 传统Java Web到SpirngBoot 中对 Ioc 的概念已经有了初步认识:Spring 通过一个配置文件描述 Bean 与 Bean 之间的依赖关系,利用 Java 的类加载器和反射机制实例化 Bean 并建立 Bean 之间的依赖关系。

我们将调用类对某一接口实现类的依赖关系交由 Spring 容器管理,容器在我们需要的时候,通过注入及时地将对象进行实例化并装配好 bean,无需我们自己 new 。

除此之外,由于JDK提供的访问资源的类对底层资源并不友好,缺少从类路径或者Web容器的上下文获取资源的操作类,Spring重新设计了一个 Resource 接口,用于更强的底层资源访问能力。有了这个资源类,就可以将Spring的配置信息放在任何地方(数据库、LDAP)。而为了访问不同类型的资源,Spring还提供了一个强大的加载资源的机制,定义了一套资源加载的接口 ResourceLoader 及其实现类,可以访问包括classpath:file:http://ftp://等地址前缀资源。

这一篇具体讲讲关于 Spring Ioc的更多内容。

阅读更多

使用 Mybatis 简化 JDBC 操作

mybatis

Java简明笔记(十三)JDBC 中,使用 JDBC 来操作数据库,并把查询到的数据库信息进行 java 对象的映射(ORM),但是 JDBC 除了需要自己写SQL之外,还必须操作Connection, Statment, ResultSet,显得繁琐和枯燥。于是我们对 JDBC 进行封装,以简化数据库操作。mybatis就是这样的一个框架。

以下简介摘自官方文档

MyBatis是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。

阅读更多

Spring(一)从传统Java Web到SpirngBoot

从 MVC 结构到 Web 框架

Java Web 技术日新月异,如今,我们开发 Java Web 项目都是靠框架快速搭建。然而,为什么需要框架?还得从传统的 MVC 结构说起。

传统 Model-View-Controller 架构

典型的Java Web应用架构如下:

MVC

  1. 浏览器发送 HTTP 请求到服务端,被 Controller(Servlet) 获取并进行处理(参数解析、请求转发)
  2. Controller 调用核心业务逻辑 —— Model
  3. Model 进行数据库存取操作,并将操作结果返回
  4. Controller 将业务逻辑处理结果交给View(JSP),动态输出 HTML 内容
  5. 动态生成的 HTML 内容返回到浏览器显示

封装 Servlet

在这个过程中,我们要操作 Servlet 写大量的功能代码,为了简化,我们可以把 Servlet 中经常要实现的功能封装起来并提供一层公共抽象,这样我们只要编写简单的 POJO 代码或者实现一些接口,就能完成复杂的 Web 请求的后端逻辑处理。 Spring MVC 就是这样的一个框架。它提供了一个DispacherServlet,我们只需实现 Spring MVC 提供的接口就可以完成复杂的操作,而不用写大量的 Servlet 代码。

阅读更多