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

admin 2023年10月14日02:27:52评论17 views字数 3234阅读10分46秒阅读模式

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标签

<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标签

<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容器中,默认值为当前类名.

@Component

Public class DogServiceImpl implements DogService{


}

2. 注入数据 @Autowired

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

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

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

@Component

Public class DogServiceImpl implements DogService{

@Autowired //注入

Private DogService dogService;

}

3.Spring快速上手

1.创建一个Spring项目

1. 在idea中创建maven项目

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

<dependencies>

<dependency>

<groupId>org.springframework</groupId>

<artifactId>spring-context</artifactId>

<version>5.2.3.RELEASE</version>

</dependency>

</dependencies>

3. 添加启动类

Public class App{

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

}

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

1. 创建一个Bean对象

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

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

<?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容器中

<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启动文件中添加如下语句

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

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

创建Bean工厂

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

2. 获取指定的Bean对象

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

//获取Bean对象

context.getBean("dog");

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

//使用对象接收

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

3. 使用Bean

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

dog类:

Public void run(){

System.out.println(“跑”);

}

使用Bean:

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对象


原文始发于微信公众号(隐雾安全):java代码审计必备技能之——Spring框架

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年10月14日02:27:52
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   java代码审计必备技能之——Spring框架http://cn-sec.com/archives/2098997.html

发表评论

匿名网友 填写信息