spring ssm快速入门

基础知识

两大核心:

  1. IOC容器
  • 功能:控制反转,把对象的创建和调用交给spring
  • 实现方式:
    1.BeanFactory:IOC中最基本的实现,spring的内部实现。使用这种方式导致spring兼容性问题。
    2.ApplicationContext:BeanFactory接口的子接口,功能更多。spring默认使用这种方法。
  • Bean
    1.含义:被spring管理的对象。
    2.生命周期:
  • 通过构造器创建bean实例,无参构造。
  • 调用set方法为Bean的属性设置值或者对其他bean引用
  • 调用bean初始化方法,需要进行配置
  • 获取bean对象
  • 容器关闭时,调用bean销毁方法
  1. AOP面向切面编程
  • 用汉堡包举例子就是你需要改变的就是肉饼的种类,其他东西都是准备好的,你输入一个种类的肉饼,就会得到一个汉堡包!
    1.连接点:可以被增强的方法。在哪里可以加肉饼
    2.切入点:真正被增强的方法。实际在哪加的肉饼
    3.通知/增强:实际增强的逻辑部分。类似于汉堡包的生菜芝士部分
    *通知类型:前置通知,后置通知,环绕通知,异常通知,最终通知。
    4.切面:将通知植入切入点的过程。

spring注解

1.@Component 声明bean注解通用的注解方法,在一个类上加一条这个注解就说明该类可以被spring管理了。
2.@Service 声明Bean的注解,在业务逻辑层service层使用
3.@Controller 声明Bean注解,在controller表现层使用
4.@Repository 声明Bean注解,在dao数据访问层使用
5.@AoutoWired 根据属性类型自动装配
6.@Qualifier 根据属性名称进行注入
7.@Resources 5.6
8.@Value 注入普通类型属性

AspectJ

  • 不是spring的组成部分,是一个独立的AOP框架,一般联合起来用实现。
    用@Order(数字)来实现增强类的优先级,数字越小优先级越高。

    before就是前置通知的函数,同理after是后置通知的。

Mybatis

定义:持久层框架(持久层类似内存转磁盘的原理),数据库的存取和读写
工作图示:
1.mybatis-Config.xml在ssm中有,但是springboot不会用。.xml文件一般有两种用途配置文件(mybatis-Config.xml)和dao层和数据库交互的文件。
2.sqlsession工厂建造者,通过配置文件生产工厂建造者。
3.sqlsession工厂,通过建造者建造工厂。
4.sqlsession,这个就是工厂的产品门面接口,可以服务了就。
5.executor/execute,这个就是产品,即对象。

springmvc工作图示

mvc:model view control 本质是模型和视图的转换

*前端控制器是核心

springboot

  • 主程序入口:用于开启springboot项目

maven

本质是一个jar包管理工具,在pom.xml中配置
三种maven仓库:本地仓库,中央仓库(maven社区的仓库),远程仓库
首先在本地仓库中搜索,然后在中央仓库找并下载到本地,最后在远程仓库找并下载到本地。

实战一:基础项目搭建

  • springboot启动文件需要与controller等文件在同一个目录下
  • 重新指向maven的仓库目录和配置文件,setting->maven

    注意更改配置文件时使用notepad++,便与统一字符编码。
  • @ResponseBody
    将返回结果转化为json格式,可以解决接口404问题,使用json暴露接口

也可以使用@RestController来代替@Controller和@ResponseBody

  • 请求方式:
    1.post和get:都放在body中,但是get的参数一般放在URL中,post请求不容易暴露参数,比较安全
    2.请求方式的目的:get就是获取数据,post提交数据
    给代码加入curd注解,标识函数。
    将注解@RequestMapping换成更细致的@PostMapping实现新增操作(还可以换getmapping,putmapping,deletemapping分别对应增查改删)
  • 常见网络状态请求码 4开头是客户端问题,5开头是服务器
    301:重定向异常
    401:权限问题
    403:服务器不允许此次请求
    404:请求路径找不到
    405:请求方法错误
    500:服务器发生错误

实战二:带有访问数据库的项目搭建(使用Mybatis)

1.搭建项目




2.
*外部请求打入controller,使用@restcontroller注册bean,同时定义访问的地址和对应的方法,该方法调用了service层的接口getUserNum。

*该接口实现类,使用@service注册到bean,该实现类调用了dao接口查询数据。

*这是dao的实现方式,与之前注册的方式不同,这次是配置xml文件。而且注册的方式采用了在主程序demoapplication引入@mapperscan(dao的路径名)



3.这样各层注入bean的操作基本完成,那怎么从bean中拿出来呢?要用到@Autowired。
首先因为在controller层实例化了个service对象,所以需要使用autowired
然后在service也使用了一个dao对象,也需要取出来,这时由于之前mapper是扫描到的不是真正注册的,所以应该在服务端实现的地方使用Resource
这些都配好后使用application.properties来配置数据库
由于公司项目需求,本篇博客暂时停止更新。
dao层和mapper的接口层要使用@resource

*这个mapper中不加mnls
*这种是在大类前面加上路径,组合路径。

总结:

*
加入新的
@Data
*get请求参数写在url中或者runapi的query中
*工具类的方法都是静态的
@RequestBody将前端的json放在对象中

三个bug,1.post请求前端传不到后端里

2.由于前端传来的json是大写字母开头,导致无法读入值
加入别名注解

3.复制参数的时候没成功
看看两个类是不是都有get set 方法

*如果遇到前端啥也没给的情况,可以在这里加入这些,就不会报错了。

指当前参数可有可无
*删除用户只能在query中进行,不能用json

posted @ 2022-07-11 23:10  headdag  阅读(151)  评论(0)    收藏  举报