基于Spingboot的Web框架的环境搭建、前后端交互

  1. 配置环境

在DataBase里新建数据库,创建关联的表结构与数据

springboot项目的创建,选择maven

在java包下com.目录

用MVC三层结构解耦

1、dao(mapper)层:数据访问层 持久层

dao层属于一种比较底层,比较基础的操作,具体到对于某个表的增删改查,也就是说某个DAO一定是和数据库的某一张表一 一对应的,其中封装了增删改查基本操作,建议DAO只做原子操作,增删改查。

负责与数据库进行联络的一些任务都封装在此,dao层的设计首先是设计dao层的接口,然后在Spring的配置文件中定义此接口的实现类,然后就可以再模块中调用此接口来进行数据业务的处理,而不用关心此接口的具体实现类是哪个类,显得结构非常清晰,dao层的数据源配置,以及有关数据库连接参数都在Spring配置文件中进行配置。

2、service层:服务层

粗略的理解就是对一个或多个DAO进行的再次封装,封装成一个服务,所以这里也就不会是一个原子操作了,需要事物控制。

service层主要负责业务模块的应用逻辑应用设计。同样是首先设计接口,再设计其实现类,接着再Spring的配置文件中配置其实现的关联。这样我们就可以在应用中调用service接口来进行业务处理。service层的业务实,具体要调用已经定义的dao层接口,封装service层业务逻辑有利于通用的业务逻辑的独立性和重复利用性。程序显得非常简洁。

3、controller层

Controler负责请求转发,接受页面过来的参数,传给Service处理,接到返回值,再传给页面。

controller层负责具体的业务模块流程的控制,在此层要调用service层的接口来控制业务流程,控制的配置也同样是在Spring的配置文件里进行,针对具体的业务流程,会有不同的控制器。我们具体的设计过程可以将流程进行抽象归纳,设计出可以重复利用的子单元流程模块。这样不仅使程序结构变得清晰,也大大减少了代码量。

关系

Service层是建立在DAO层之上的,建立了DAO层后才可以建立Service层,而Service层又是在Controller层之下的,因而Service层应该既调用DAO层的接口,又要提供接口给Controller层的类来进行调用,它刚好处于一个中间层的位置。每个模型都有一个Service接口,每个接口分别封装各自的业务处理方法。

Mapper层也是实现了数据访问和交换

要用@Mapper注解 也可以用注解来操作数据库如select delect put update

java 复制代码
import com.kyle.pojo.Dept;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;
import java.util.List;
@Mapper
public interface DeptMapper {
    @Select("select * from dept")
    public List<Dept> listDept();
}

Service层

接口及实现类命名方式,接口XXXService,实现类:XXXServiceImpl。

实现类XXXServiceImpl需添加注解@Service,并指明名称,如@Service("companyService");

在实现类中,通过注解@Autowired,注入数据

typescript 复制代码
@Service
public class DeptServiceImpl implements DeptService {
    @Autowired
    private DeptMapper deptMapper;
    @Override
    public List<Dept> listDept() {

        return deptMapper.listDept();
    }
}

Controller层

注意日志的输出

@RequestMapping请求

请求的地址路径 "/***"

less 复制代码
@Slf4j
@RestController
public class DeptController {
    @Autowired
    private DeptService deptService;

    //标准日志输出格式
    //private static Logger log = (Logger) LoggerFactory.getLogger(DeptController.class);
    //或者用注解@Slf4j

    //@RequestMapping(value = "/depts",method = RequestMethod.GET)//指定请求方式GET
    //或者用
    @GetMapping("/depts")
    public Result list() {

        List<Dept> deptlist = deptService.listDept();
        log.info("查询全部部门数据");
        return Result.success(deptlist);
    }
}
相关推荐
间彧1 天前
Spring Cloud Gateway与Kong或Nginx等API网关相比有哪些优劣势?
后端
间彧1 天前
如何基于Spring Cloud Gateway实现灰度发布的具体配置示例?
后端
间彧1 天前
在实际项目中如何设计一个高可用的Spring Cloud Gateway集群?
后端
间彧1 天前
如何为Spring Cloud Gateway配置具体的负载均衡策略?
后端
间彧1 天前
Spring Cloud Gateway详解与应用实战
后端
EnCi Zheng1 天前
SpringBoot 配置文件完全指南-从入门到精通
java·spring boot·后端
烙印6011 天前
Spring容器的心脏:深度解析refresh()方法(上)
java·后端·spring
Lisonseekpan1 天前
Guava Cache 高性能本地缓存库详解与使用案例
java·spring boot·后端·缓存·guava
1 天前
JUC专题 - 并发编程带来的安全性挑战之同步锁
后端
凯哥19701 天前
迁移PostgreSQL数据库教程
后端