今天学习了spring的一些内容,刚开始学有点不是很清晰,发个笔记记录一下
spring解决了什么问题?
解决的是业务逻辑层和其他各层的松耦合问题
Spring模拟 使用反射创建对象
-
编写property文件---里面是类名的键值对
-
创建BeanFatory类,通过classloader 将源文件转化为inputStream流
-
通过property.load加载流,创建一个动态生成对象的方法,参数为配置源文件的key返回string字符串
-
通过反射newInstance()创建对应的对象 最后返回一个object对象
property文件
userDao=com.gec.dao.UserDaoImpl userService=com.gec.service.UserServiceImpl
BeanFatory代码
package com.gec.bean; // bean -> spring 称呼 一个 bean 其实 就是javabean import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import java.util.Properties; // 专门去造 对象的 public class BeanFactory { private static Properties properties =null; static { //1. 加载 applicationContext.properties // 反射方式加载 ClassLoader classLoader = BeanFactory.class.getClassLoader(); //2. 从配置文件 得到 inputstream 流 InputStream inputStream = classLoader.getResourceAsStream("applicationContext.properties"); properties = new Properties(); try { //3.讲 inputstream 流 转为 properties 对象 properties.load(inputStream); } catch (IOException e) { e.printStackTrace(); } } // 创建对象 public static Object createObj(String beanName){ // com.gec.dao.UserDaoImpl //4. 根据 properties 对象 中 的key 获取到 值 String str = properties.getProperty(beanName); Object obj = null; try { //5. 通过反射 去根据 类的全路径字符串 创建对象 obj = Class.forName(str).newInstance(); } catch (Exception e) { e.printStackTrace(); } //6. 返回反射创建的对象 return obj; } }
Spring基本配置
1.导入四个基本包+logging 准备bean对象
2.配置xml文件 -----配置bean类到容器
通过以下代码加载配置
测试代码:
public class DemoTest1 { public static void main(String[] args) { //1. 加载 applicationContext.xml 得到 一个spring 容器 ApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml"); //2. 从容器中要对象 根据名称 User user = (User) applicationContext.getBean("user"); System.out.println(user); } }
ok---
----------开始配置spring----------
1.导入需要的jar包
创建基础对象
结构如图:
2.编写spring 核心配置文件---applicationContext.xml 位置->放在src下
配置时设计到IOC概念---控制反转和DI依赖注入
IOC什么意思呢?就是说以前我们创建对象是自己亲力亲为,现在把对象交给spring容器去管理,就不用我们自己创建了,这就是IOC大概的思想。
DI依赖注入什么意思呢?
笔者也是初学者(orz有些地方不太懂,还请海涵),目前的理解是将bean的成员变量赋值-----也就是j将值注入到bean中
如图:
applicationContext.xml配置:
第一个bean标签对应的就是Pojo包下的User类对象
一些常用标签和属性的作用可以自行搜索 ┌( ´_ゝ` )┐
以上是我今天学习的内容,有错误的地方请一定讲出来 -- 跪拜
---end----