牛客chapter1

本文详细介绍了基于SpringBoot的项目构建过程,包括Spring全家桶、MyBatis的使用,以及如何进行数据库交互。讨论了Spring Security权限设置、监控系统Spring Actuator,并涉及Redis、Kafka和Elasticsearch等技术。在MyBatis部分,阐述了MyBatis的工作流程,从DAO接口到Mapper映射器的配置。最后,展示了开发社区首页和分页功能的实现。
摘要由CSDN通过智能技术生成

目录

1、技术框架

2、杂项

3、Mybaties

(1)前期工作

(2)mybatis工作流程

4、开发社区首页

5、分页



1、技术框架

SpringBoot 管理项目中的对象

Spring MVC: 处理请求

MyBatis:处理与数据库的交互

Redis:高性能数据库(第四章)

Kafka:消息队列服务器(第五章)

Elasticsearch:搜索引擎(第六章)

Spring Security:设置用户权限

Spring Actuator:监控系统,运维使用
 

2、杂项

(1)构建spring 项目:使用Spring initializr

(2)spring boot(构建项目): 前期依赖,自动配置,端点监控(监视项目运行状况)

(3) (https://Spring.io   document)     Spring全家桶

Spring Framework : 全框架

Spring Boot

Spring Clound:将项目进行才分为子项目

Spring Cloud Data Flow :整合数据

(4)在@SpringBootApplication 注解所在内的包中(包括所有的子包),只要被添加上@Controller(处理前端请求),@Component(所有组件),@Service(业务组件),@Repository(数据库访问)中任何一个组件,那么这个方法将会自动成为bean被添加到仓库中,在使用mybatie时还可以使用@Mapper也能达到同样的效果

(5)得到仓库中的bean

import com.nowcoder.community.dao.AlphaDao;
import org.assertj.core.api.Abstract2DArrayAssert;
import org.junit.jupiter.api.Test;
import org.springframework.beans.BeansException;
import org.springframework.boot.ApplicationArguments;
import org.springframework.boot.ApplicationContextFactory;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
import org.springframework.test.context.ContextConfiguration;

@SpringBootTest
@ContextConfiguration(classes = CommunityApplication.class)
class CommunityApplicationTests implements ApplicationContextAware {

//	@Test
//	void contextLoads() {
//	}

	private ApplicationContext applicationContext; //声明一个仓库实例

	@Override
	public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
		this.applicationContext = applicationContext; //得到spring容器(仓库)
	}

	@Test
	public void testApplicationContext(){
//		System.out.println(this.applicationContext);
		AlphaDao alphaDao = this.applicationContext.getBean(AlphaDao.class); //从仓库中,取出指定的bean(AlphaDao)
		System.out.println(alphaDao.select());
	}
}

(6)网络中服务端的三层架构

        1)表现层(controller):MVC,model,view,controller。前端控制器:DispatcherServlet,管理表现层组件

        2)业务层(service)

        3)数据层(Dao、entity,mapper.xml)

(7)模板引擎 thymeleaf,生成动态的html文件

        由模板文件(静态html)和model(后台参数)通过模板引擎生成动态html文件

        常用语法:标准表达式,判断与循环,模板布局(复用页面)

(8)获取请求对象,响应对象

        HttpServletRequest request :前端请求数据,自动获得前端对象

        HttpServletResponse response:前端响应数据,自动将后台数据po到前端

@RequestMapping("/http")
    public void http(HttpServletRequest request, HttpServletResponse response) throws IOException {
        //获取请求数据
        System.out.println(request.getMethod());
        System.out.println(request.getServletPath());

        //得到请求行中的内容,请求行中的内容是map类型
        Enumeration<String> enumeration = request.getHeaderNames();
        while (enumeration.hasMoreElements()){
            String name = enumeration.nextElement(); //得到key
            String value = request.getHeader(name);
            System.out.println(name + ": " + value);
        }

        //返回响应数据
        response.setContentType("text/html;charset = utf-8"); //设置返回数据的类型
        PrintWriter writer = response.getWriter();
        writer.write("<p> ok </p>");
    }

(9)渲染前端动态网页

后台代码

//生成动态前端页面,文件默认存放在templates中
    @RequestMapping(path = "/teacher",method = RequestMethod.GET) //将数据给到前端页面一般使用get,
    public ModelAndView getTeacher(){
        ModelAndView mav = new ModelAndView();
        mav.addObject("name","keke");
        mav.addObject("age",18);
        mav.setViewName("/demo/view");//设置那个对应的前端页面使用当前mav参数
        return mav;
    }

     前端页面: 前端存放在template/demo/view

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值