Programmer Log13[Spring

mac2024-04-14  41

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)