spring 学习笔记

一. spring 操作

1. Spring IoC/DI 概念理解

IoC

概念: 控制反转——以前自己new对象及组织对象间的依赖关系,现在全部由容器来统一管理。控制权发生了反转,所以叫控制反转。IoC 是一种设计思想,使用它可以实现解耦。
实现: 将对象创建和消耗的权力交给 loC 容器来实现来进行管理。
在Spring中,称为Spring容器,Spring Bean容器,loC容器

DI

概念: 依赖注入——它是 IoC 的一种具体实现。
依赖指某个对象中属性依赖另一个对象。
注入是指(1)对象注入容器(2)一个对象注入到另一个对象的属性。

如下图:

理解注入的流程:

  1. 启动Spring容器:new ApplicationContext的实现类
  2. 注册/注入对象到容器中:加载指定的xml配置文件,执行包扫描,指定的子包下,带Spring框架提供的4个类注解,会注入到容器中。 @Controller@Service@Repository@Component

区别:Controller表示当前类前端业务交互层,@Service业务处理层,@Repository数据交互层(DB),@Component注解层。

  1. 装配/注入依赖关系(属性)︰如果Bean对象需要使用其他Bean对象作为属性,可以使用以下两个注解: @Autowired@Resource

流程如图所示:

2. 对象注册注解

  1. 类注解:@Controller@Service@Repository@Component
  2. 方法注解:@Bean
  3. 特殊类注解:@Configuration

3. 对象注入

  1. 属性注入:@AutoWrite
  2. setter 注入:setter + @AutoWrite
  3. 构造方法注入

4. Bean 作用域

  1. singletion 单例模式(默认)
  2. prototype 原型模式(每一个请求创建一个新对象)
  3. request
  4. session
  5. application
  6. websocket

5. Bean 生命周期的简化理解

  1. 实例化 Bean 对象 ——> 字节流内存对象(属性还未注入)
  2. 设置属性 ——> 依赖注入
  3. 初始化 ——>开始执行你的代码
  4. 销毁

二 .mybatis 操作

  1. 添加引用
    a) MyBatis[ORM]
    b) MySQL

  2. 添加配置信息
    a) 配置数据库的连接信息

spring.datasource.url=jdbc:mysql://127.0.0.1:3306/mybatis_study?characterEncoding=utf8&useSSL=true
spring.datasource.username=root
spring.datasource.password=
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
b) 配置 MyBatis 映射文件规则
  1. 添加 Mapper 接口
  2. 添加 Mapper.xml 文件(文件)—><insert>

1.#{} 和 ${} 的区别

  1. #{} 相对安全,它的sql是预处理,不会存在sql注入问题,而 ${} 可能存储sql注入安全问题;
  2. #{} 在替换字符串参数时在拼接时会加上单引号,所以对于(MySQL) 系统关键字,所以此方法是不适用的,而 ${} 它能使用sql所有的替换。

SQL 安全问题的解决方案 ?

  1. 尽量使用预处理的 #{} 的方式进行参数的替换。
  2. 在进行数据库操作前,先手动的对传输的参数进行过滤操作,来防止sql注入
  3. 尽量使用系统提供的内置方法 + #{} 的方式来进行参数的替换,如concat('%',#{},'%');
  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值