JAVA反射以及Spring框架

本文介绍了Spring框架的概述,强调了它在简化Java应用程序开发中的作用,特别是通过IOC和AOP实现对象管理和切面编程。同时,文章深入探讨了Java反射机制,包括如何获取Class对象、使用反射创建和调用对象的方法,以及反射在框架中的重要性。
摘要由CSDN通过智能技术生成

目录

一、Spring 概述

Spring框架是由于软件开发的复杂性而创建的。Spring使用的是基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅仅限于服务器端的开发。从简单性、可测试性和松耦合性角度而言,绝大部分Java应用都可以从Spring中受益。

二、Spring对Bean的管理

1、创建bean的方式

一、反射的概述

JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。要想解剖一个类,必须先要获取到该类的字节码文件对象。而解剖使用的就是Class类中的方法.所以先要获取到每一个字节码文件对应的Class类型的对象.

二、Class类

 三、反射的使用

1、获取Class对象的三种方式

1.1 Object ——> getClass();1.2 任何数据类型(包括基本数据类型)都有一个“静态”的class属性1.3 通过Class类的静态方法:forName(String  className)(常用)

 最后创建测试类:创建serclet包 里面创建四个测试类BookServlet、Test01、Test02、Test03

一、Spring 概述

Spring框架是由于软件开发的复杂性而创建的。Spring使用的是基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅仅限于服务器端的开发。从简单性、可测试性和松耦合性角度而言,绝大部分Java应用都可以从Spring中受益。

spring作用:主要解决了创建对象和管理对象的问题。

Spring 的核心:

IOC(Inversion of Control):控制反转,即对象创建的问题
AOP(Aspect Oriented Programming):面向切面编程

IOC和DI

IOC:控制反转,把传统上由程序代码直接操控的对象的调用权交给容器,通过容器来实现组件的装配和管理,本质就是对象的调用权的转移,将创建对象的权利交给了容器
DI:依赖注入,在运行期,由外部容器动态地将依赖对象注入到另一个对象中

IOC描述的是一种思想,DI是对IOC思想的具体实现

二、Spring对Bean的管理

1、创建bean的方式

1.默认使用构造函数创建

在Spring的配置文件中使用bean标签,配置 id 和 class 属性后,没有其他属性和标签时,采用的就是默认构造函数创建bean对象,此时如果类中没有默认构造函数,则对象无法创建。

案例:

首先导入spring所需要的架包:

http://链接:https://pan.baidu.com/s/1RsEcnBVAD50m86m5kdEKpw?pwd=1314 提取码:1314

在src中创建一个spring.xml配置文件

链接:https://pan.baidu.com/s/1EuTHmIlHME6m-IJlyBp5Lw?pwd=1314 
提取码:1314

spring.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">
    <!--告诉spring框架 创建管理哪些对象
    id:给创建出的对象起一个名字
    class:要创建对象对应类的全类名
    -->
  <bean id="bookDao" class="com.nai.dao.impl.BookDaoImpl"></bean>
    <bean  id="bookService" class="com.nai.service.impl.BookServiceImpl">
        <!--通过property 给类的属性进行主入数据:默认使用的是setter方法
        常规类型使用value注入
        对象使用ref引用上面定义的:
        -->
        <property name="name" value="张三"/>
        <property name="age" value="22"/>
        <property name="bookDao" ref="bookDao"/>
    </bean>
</beans>

 spring整体结构:

 

 相应代码:

com.nai.dao.impl中创建一个BookDao接口和BookDaoImpl实现类

BooKDao接口:

package com.nai.dao;

public interface BookDao {
    public void insert();

}



 BookDaoImpl类:

package com.nai.dao.impl;

import com.nai.dao.BookDao;
//实现类
public class BookDaoImpl implements BookDao {
    @Override

    public void insert() {
        System.out.println("BookDaoImpl...save");

    }
}

 com.nai.service.impl中创建BookServiceImpl实现类、BookServiceVip实现类、和BookService接口

BookService接口:

package com.nai.service;

public interface BookService {
void save();

}

 BookServiceImpl实现类:

package com.nai.service.impl;

import com.nai.dao.BookDao;
import com.nai.service.BookService;

public class BookServiceImpl  implements BookService {

    public  String name;
    public  int age;
    private BookDao bookDao;

    public void setName(String na
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值