Programmer Log13[Spring_Part2&Part3]_19.10.31

Part2

1.基于注解的IoC配置
首先在xml文件中配置component-scan,里面配置包名,表明要扫描此包下的注解

 <?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:context="http://www.springframework.org/schema/context" //注意这里也发生了变化(从spring官方网页上拷贝)
       xsi:schemaLocation="http://www.springframework.org/schema/beans
        https://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/context
        https://www.springframework.org/schema/context/spring-context.xsd">

    <!--用下面这个配置,就会扫描这个包及其子包所有类上的注解-->
    <context:component-scan base-package="com.stay"></context:component-scan>
</beans>

1.1 用于创建对象的注解
相当于xml中的创建对象的配置
@Component
书写位置:类前
属性value:用于指定bean的id对象,默认值是当前类名并且首字母小写
其他形式:@Controller 用在表现层(ui)
@Service 用在业务层 (service)
@Repository 用在持久层(DAO)
1.2 用于注入bean类型数据的注解
相当于标签中的
书写位置:可以是变量上也可以是方法上
@Autowired
自动按照类型注入,只要容器中有唯一一个bean对象和要注入的变量类型匹配,就可以注入成功
如果IOC中有多个类型匹配,首先按照类型圈定匹配对象,再根据标量名称从圈定的范围继续查找
@Qualifier
在按照类型注入的基础上再按照名称注入,在给类成员注入时不能单独使用(要和Autowired组合在一起)
属性value:用于指定注入bean的id
@Resouece
直接按照bean的id注入,可以独立使用
属性name:用于指定bean的id
1.3 用于注入基本类型和String类型数据的注解
@Value
属性value:用于指定数据的值,可以使用spring中的SpEL 写法:${表达式}
1.4 用于改变作用范围的注解
相当于标签中的
@Scope
用于指定bean的作用范围
属性value:指定范围的取值 常用取值:singleton prototype
1.5 和生命周期相关的注解
相当于标签中使用init-method和destory-method
@PostConstruct 用于指定初始化方法
@PreDestory 用于指定销毁方法
2.spring新注解
旨在实现没有xml配置存在的纯注解spring环境
@Configuration
作用:指定当前类是一个配置类
细节:当配置类作为AnnotationConfigApplicationContext对象创建的参数时,该注解可以不写
@ConponentScan
作用:用于通过注解指定spring在创建容器时要扫描的包
属性basePackages:值是包名
配置这个注解就相当于配置了<context:component-scan base-package=“com.stay”> </context:component-scan>
@Bean
作用:用于把当前方法的返回值作为bean对象存入spring的Ioc容器中
属性name:用于指定bean的id 默认值是当前方法名称
@Import
作用:用于导入其他的配置类
属性value:用于指定其他配置类的字节码
写法:Import(类名.class)
应用场景:有一个大的总体的配置类,还有一些小的配置类,为了在创建对象传参时只写大配置类的明治,就要在大配置类中用Import把小配置类引入
@PropertySource
作用:用于指定properties文件的位置
属性value:指定文件的名称和路径
写法:PropertySource(“classpath:jdbcConfig.properties”)

补充知识:
如果要连接数据库,那么数据库的有关信息储存在一个propertiess文件中
包括四部分内容:

jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/springaccount
jdbc.username=root
jdbc.password=123456789

支持它的jar包:

<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>5.1.6</version>
</dependency>

Part3

1.AOP简介
1.1 AOP的概念
AOP:面向切面编程
作用:在程序运行期间,不修改源码对已有的方法进行增强
优势:减少重复代码 提高开发效率 维护方便
实现方式:使用动态代理技术
1.2 AOP相关术语
Joinpoint(连接点):被拦截到的点,在spring中,这些点指方法(业务层接口中的方法),因为 spring只支持方法类型的连接点
Pointcut(切入点):被增强的方法
Advice(通知/增强): 拦截到Joinpoint后要做的事情
通知分为:前置通知,后置通知,异常通知,最终通知和环绕通知(比如说整个invoke方法)
Introduction(引介):一种特殊的通知,在不修改类代码的前提下,Introduction可以在运行期为类动 态地添加一些方法
Target(目标对象):被代理对象
Weaving(织入):把增强应用到目标对象来创建新的代理对象的过程
Proxy(代理):代理对象,一个类被AOP织入增强后,就产生一个结果代理类
Aspect:切入点和通知的结合

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值