反射
1.什么是反射
1)Java反射机制的核心是在程序运行时动态加载类并获取类的详细信息,从而操作类或对象的属性和方法。本质是JVM得到class对象之后,再通过class对象进行反编译,从而获取对象的各种信息。
2)Java属于先编译再运行的语言,程序中对象的类型在编译期就确定下来了,而当程序在运行时可能需要动态加载某些类,这些类因为之前用不到,所以没有被加载到JVM。通过反射,可以在运行时动态地创建对象并调用其属性,不需要提前在编译期知道运行的对象是谁。
2.常用的类文件
3.反射的作用
类的加载器可以获得类中的东西:属性,构造方法,功能方法。即
- 动态创建对象
- 动态操作属性
- 动态调用方法
4.反射的入口——class类
IOC/DI
IOC(控制反转):以前依赖的对象自己直接new,现在不需要new,框架会自动注入,创建对象的权利转移给了框架
DI(依赖注入):一个类的功能需要依赖另一个类的配合,同时需要赋上一个具体的对象,则这种关系是依赖注入
Spring框架负责所有对象的创建、管理和依赖注入,所有对象储存的容器叫做IOC容器
代码展示
核心配置文件:
<?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>
dao层:
package com.gao.dao;
public interface BookDao {
public void study();
}
package com.gao.dao.impl;
import com.gao.dao.BookDao;
public class BookDaoImpl implements BookDao {
@Override
public void study() {
}
}
service层
package com.gao.service.impl;
import com.gao.dao.BookDao;
import com.gao.service.BookService;
public