Spring的IOC和AOP知识点回顾

IOC和DI区别

ioc:控制反转 对象创建交给spring配置
di:依赖注入 向类里面属性中设置值
关系:依赖注入不能单独存在,需要在ioc基础上完成操作

bean实例化的三种方式:无参构造、静态工厂、实例工厂

属性注入(xml)的几种方式:set方法、有参构造、接口注入

常用注解注入属性,需要注意的是

在service类里面定义dao类型属性 Autowired不需要匹配对象属性的value值userDao。

注入属性第二个注解 @Resource这个注解的name值需要与dao对象属性的valueuserDao匹配

通常情况@Autowired是通过byType的方法注入的,可是在有多个实现类的时候,byType不能确定唯一的实现类,就会通过byName的方式去匹配,所以有多个实现类的时候,变量名应该不同,否则会报错

 

Spring的注解装配Bean

Spring2.5 引入使用注解去定义Bean

  • @Component 描述Spring框架中Bean

Spring的框架中提供了与@Component注解等效的三个注解

  • @Repository 用于对DAO实现类进行标注(dao层)
  • @Service 用于对Service实现类进行标注(service层)
  • @Controller 用于对Controller实现类进行标注(web层)

注解进行属性注入

普通属性:@Value(value="..."),这时候可以不写setter方法

对象属性:@Resource(name = "....")

或者采用   @Autowired

       @Qualifier(value = "plane")

//因为只有一个属性value,所以可以直接写。一般需要value="..."
@Component("user")
public class User {
    @Value(value="Spring")
    private String s;
 
    public void sayHello(){
        System.out.println("Hello World.");
    }
 
    @Override
    public String toString() {
        return "User{" +
                "s='" + s + '\'' +
                '}';
    }
}

 

IOC底层原理:dom4j解析配置文件+反射机制

 

AOP

joinpoint(连接点):类里面可以被增强的方法称之为连接点
pointcut(切入点):指我们要对哪些joinpoint进行拦截的定义
advice(通知/增强):拦截到joinpoint之后要做的事情就是通知。通知分为前置通知,后置通知,
异常通知,最终通知,环绕通知(切面要完成的功能)。
aspect(切面):切入点和通知的结合,将增强用到切入点的过程。

aop底层原理:动态代理方式实现

面向切面编程(aop)是对面向对象编程(oop)的补充, 
面向对象编程将程序分解成各个层次的对象,面向切面编程将程序运行过程分解成各个切面。 
AOP从程序运行角度考虑程序的结构,提取业务处理过程的切面,oop是静态的抽象,aop是动态的抽象, 是对应用执行过程中的步骤进行抽象,,从而获得步骤之间的逻辑划分。

 AOP的注解方式

bean.xml中:

AOP的xml方式实现

 

JdbcTemplate实现CRUD操作

查询的具体实现:

查询返回某一个值

查询返回对象

查询返回集合

MyRowMapper和查询单个对象时一样,不用改变。

 

dao使用jdbcTemplate

 

Spring的事务管理

spring管理事务的两种方式:

第一种:编程式事务管理(不用)

第二种:声明式事务管理

            1.基于XML配置文件实现

             2.基于注解实现

spring管理事务的api:

接口 PlatformTransactionManager 事务管理器

spring针对不同的dao层框架,提供接口不同的实现类

(1)首先配置事务管理器

(2)配置事务增强

(3)配置切面

使用注解方式配置事务:

第三步:在要使用事务的方法所在类上面添加注解

在使用Python来安装geopandas包时,由于geopandas依赖于几个其他的Python库(如GDAL, Fiona, Pyproj, Shapely等),因此安装过程可能需要一些额外的步骤。以下是一个基本的安装指南,适用于大多数用户: 使用pip安装 确保Python和pip已安装: 首先,确保你的计算机上已安装了Python和pip。pip是Python的包管理工具,用于安装和管理Python包。 安装依赖库: 由于geopandas依赖于GDAL, Fiona, Pyproj, Shapely等库,你可能需要先安装这些库。通常,你可以通过pip直接安装这些库,但有时候可能需要从其他源下载预编译的二进制包(wheel文件),特别是GDAL和Fiona,因为它们可能包含一些系统级的依赖。 bash pip install GDAL Fiona Pyproj Shapely 注意:在某些系统上,直接使用pip安装GDAL和Fiona可能会遇到问题,因为它们需要编译一些C/C++代码。如果遇到问题,你可以考虑使用conda(一个Python包、依赖和环境管理器)来安装这些库,或者从Unofficial Windows Binaries for Python Extension Packages这样的网站下载预编译的wheel文件。 安装geopandas: 在安装了所有依赖库之后,你可以使用pip来安装geopandas。 bash pip install geopandas 使用conda安装 如果你正在使用conda作为你的Python包管理器,那么安装geopandas和它的依赖可能会更简单一些。 创建一个新的conda环境(可选,但推荐): bash conda create -n geoenv python=3.x anaconda conda activate geoenv 其中3.x是你希望使用的Python版本。 安装geopandas: 使用conda-forge频道来安装geopandas,因为它提供了许多地理空间相关的包。 bash conda install -c conda-forge geopandas 这条命令会自动安装geopandas及其所有依赖。 注意事项 如果你在安装过程中遇到任何问题,比如编译错误或依赖问题,请检查你的Python版本和pip/conda的版本是否是最新的,或者尝试在不同的环境中安装。 某些库(如GDAL)可能需要额外的系统级依赖,如地理空间库(如PROJ和GEOS)。这些依赖可能需要单独安装,具体取决于你的操作系统。 如果你在Windows上遇到问题,并且pip安装失败,尝试从Unofficial Windows Binaries for Python Extension Packages网站下载相应的wheel文件,并使用pip进行安装。 脚本示例 虽然你的问题主要是关于如何安装geopandas,但如果你想要一个Python脚本来重命名文件夹下的文件,在原始名字前面加上字符串"geopandas",以下是一个简单的示例: python import os # 指定文件夹路径 folder_path = 'path/to/your/folder' # 遍历文件夹中的文件 for filename in os.listdir(folder_path): # 构造原始文件路径 old_file_path = os.path.join(folder_path, filename) # 构造新文件名 new_filename = 'geopandas_' + filename # 构造新文件路径 new_file_path = os.path.join(folder_path, new_filename) # 重命名文件 os.rename(old_file_path, new_file_path) print(f'Renamed "{filename}" to "{new_filename}"') 请确保将'path/to/your/folder'替换为你想要重命名文件的实际文件夹路径。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值