java代码审计必备技能之——Spring框架

1. Spring概述

1.1 什么是Spring

Spring作为一款轻量级开源框架,以控制反转(IOC)和面向切面编程(AOP)为内核.解决了开发人员在工作过程中遇到的许多常见问题.包括目前市场的java项目绝大部分会采用Spring框架技术.

1.2 Spring框架优点

Spring框架可以通过使用依赖注入(DI)来解耦各个组件之间的依赖关系,达到项目的可测试和易于维护性。还可以通过面向切面编程(AOP)管理系统中的横切关注点,提高模块化 将关注点从程序中的逻辑分离出来,使代码清晰简洁易于维护.

2. Spring核心之一IOC的具体实现

控制反转(IOC)作为Spring框架的核心之一,它是一种软件的设计思想 而实现这种思想的技术就叫做 依赖注入(DI).同时Spring框架的核心技术也就是 依赖注入(DI).

对于Spring框架 控制反转(IOC) 就是把负责控制对象生命周期和对象间的关系来交给Spring管理.而依赖注入(DI) 则是动态的向某个对象提供它所需要的其他对象.

Spring依赖注入可以注入三种类型的数据:

1. String类型和其它基本类型

2. 复杂类型/集合类型

3. 在配置文件中配置过的bean

4. 在注解中配置过的bean

Spring注入的方式有:

1. 使用构造函数注入

在bean标签的内部使用 constructor-arg标签

  1. <bean id="demo" class="com.yw.Demo">

    <constructor-arg name="name" value="江湖"></constructor-arg>

    <constructor-arg name="age" value="55555"></constructor-arg>

    </bean>

在constructor-arg标签中 value用于指定其它bean类型的数据,就是ico容器中出现过的其它bean对象.除了有value属性为 ,还有 type index name 属性 这三个属性用于指定给构造函数中哪个参数赋值

2. 使用set方法注入

在bean标签内部使用 property标签

  1. <bean id="demo" class="com.yw.Demo">

    <property name="name" value="江湖"></property >

    <property name="age" value="55555"></property >

    </bean>

Set方法不能清晰的表达哪些属性是必须的,因为在创建对象时,如果规定某个成员必须有值,则在获取对象时set方法可能没有执行。

3. 使用注解注入

1. 创建对象容器

使用@Component注解 放在类上,作用是把当前类放在Spring容器中,默认值为当前类名.

  1. @Component

    Public class DogServiceImpl implements DogService{


    }

2. 注入数据 @Autowired

@Autowired 放在属性上通过set方法注入

放在构造器上通过构造方法注入

作用和配置文件的中的bean标签的 property标签一样.

  1. @Component

    Public class DogServiceImpl implements DogService{

    @Autowired //注入

    Private DogService dogService;

    }

3.Spring快速上手

1.创建一个Spring项目

1. 在idea中创建maven项目

2. 在pom.xml文件中添加spring信息

  1. <dependencies>

    • <dependency>

    • <groupId>org.springframework</groupId>

    • <artifactId>spring-context</artifactId>

    • <version>5.2.3.RELEASE</version>

    • </dependency>

    </dependencies>

3. 添加启动类

  1. Public class App{

    Public static void main(String[] args){
    }

    }

2. 向Spring容器中 存储Bean对象

1. 创建一个Bean对象

publicclassDogprivateStringname;privateStringcolor;publicStringgetName()returnname;publicvoidsetName(Stringname)this.name=name;publicStringgetColor()returncolor;publicvoidsetColor(Integercolor)this.color=color;

2. 将创建的Bean对象注册到Spring容器中

在项目中的resources文件夹中建立Spring的配置文件 spring-config.xml.

  1. <?xml version="1.0" encoding="UTF-8"?>

    <beans xmlns="http://www.springframework.org/schema/beans"

    • xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

    • xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">

    </beans>

此文件为Spring的核心配置文件

3. 在核心配置文件中 使用Bean标签把Dog对象注册到Spring容器中

  1. <beans>

    <bean id="dog" class="com.yw.Dog"></bean>

    </beans>

Bean标签把对象交给Spring来创建,基本有id和class 其中id为Bean的实例在Sping容器中的唯一标识 而class则是Bean的全局名称(对象的路径)

3. 从Spring容器中获取使用Bean对象

1.创建Spring上下文

方式(1):在App启动文件中添加如下语句

  1. ApplicationContext context = new ClassPathXmlApplicationContext(“spring配置名”);

方式(2):使用Bean工厂 BeanFactory

创建Bean工厂

  1. BeanFactory factory = new XmlBeanFactory(new ClassPathResource(“spring配置文件名”));

2. 获取指定的Bean对象

  1. ApplicationContext context=new ClassPathXmlApplicationContext("Spring容器配置文件");

//获取Bean对象

  1. context.getBean("dog");

//dog为上文定义的id标签

//使用对象接收

  1. Dog dog = (Dog) context.getBean(“dog”);

3. 使用Bean

在Dog类中添加一个run方法 来演示使用Bean调用此方法.

dog类:

  1. Public void run(){

    System.out.println(“跑”);

    }

使用Bean:

  1. Dog.run();

4. Spring使用流程

1. 第一步首先使用idea编辑器来创建一个Spring项目并且引入Spring所需要的文件以及在Spring配置文件中,配置基础的信息.

2. 存储Bean,首先创建一个Bean对象 将Bean对象存入Spring容器中(sprign-config.xml)

3. 获取使用Bean对象:首先获取全局配置文件——>ApplicationContext || BeanFactory 其次根据id 使用getBean()来获取Bean对象

4. 最后使用我们的Bean对象

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我是黑客

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值