20220217

spring ioc(Inverse of Control)控制反转 和 di(dependency injection)

ioc:创建对象交给spring,业务层只关系业务即可。Ioc 的常见容器是:ApplicationContext 和 BeanFactory。ioc注解:@Component 注解(把资源让 spring 来管理。相当于在 xml 中配置一个 bean。value:指定 bean 的 id。 如果不指定 value 属性,默认 bean 的 id 是当前类的类名,首字母小写。@Controller:一般用于表现层的注解。@Service:一般用于业务层的注解。@Repository:一般用于持久层的注解。)

di:依赖注入。用到的时候注入。applicationContext.xml:构造函数注入和set注入。依赖注解:

@Autowired,按类型装配(byType)如果要允许 null 值,可以设置它的 required 属性为false,如:@Autowired(required=false)想使用名称装配可以结合 @Qualifier 注解进行使用

2)@Qualifier

  • 在自动按照类型注入的基础之上,再按照 Bean 的 id 注入。
  • 它在给字段注入时不能独立使用,必须和 @Autowire 一起使用;但是给方法参数注入时,可以独立使用。

3)@Resource(推荐使用)

  • 默认按照名称(byName)进行装配,名称可以通过 name 属性进行指定
  • 这个注解属于 J2EE 的(推荐使用 @Resource 注解,因为这个注解是属于 J2EE 的,减少了与 Spring 的耦合。这样代码看起就比较优雅
  • 如果没有指定 name 属性,当注解写在字段上时,默认取字段名进行按照名称查找,当找不到与名称匹配的 bean 时才按照类型进行装配。
  • 但是需要注意的是,如果 name 属性一旦指定,就只会按照名称进行装配。

4)@Value

相当于:<property name="" value="">

  • 给基本类型和 String 类型注入值
  • 可以使用占位符获取属性文件中的值。
@Value("${name}") //name 是 properties 文件中的 key
private String name;

5)@Scope

相当于:<bean id="" class="" scope="">

  • 作用:指定 bean 的作用范围。
  • 属性:value:指定范围的值。取值:singleton prototype request session globalsession

AOP(面向切面编程)是对oop(面向对象编程)的补充:你只要关系你的业务即可,其他的事交给其他人。比如权限认证、日志、事务处理。实现方式:

一是采用动态代理技术,利用截取消息的方式,对该消息进行装饰,以取代原有对象行为的执行;

二是采用静态织入的方式,引入特定的语法创建 “方面”,从而使得编译器可以在编译期间织入有关 “方面” 的代码。这里静态织入的原理就是在编译期间,切面直接以字节码形式编译到目标字节码中.

binlog:

mysql主备方案:

读写在主库,将数据实时同步给备库。

备份过程:数据>>>>master>>>>binlog>>>I/O thread>>>>slave>>>relaylog>>>>>sql thread。

1.在备库中执行change master 命令,绑定主库。

2、备库执行start slave,备库启动两个线程:i/o thread 和 sql thread。

3、主库数据变动写入binlog。

4、主库创建log dump 线程,通知slave数据有更新。

5、slave,向master节点的log dump线程请求一份指定binlog文件位置的副本,并将请求回来的binlog存到relay log中。

6、slave开启sql 线程读取relay log解析执行。

binlog三种模式:

row:记录table_map,writre_rows,deleter_rows

statement:记录sql语句

mixed:混合上面两种。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值