大良营销网站建设平台,网站建设的方法和技术,局域网做网站,企业网站建立平台目录
Spring
Spring 学习的核心内容
解读上图:
Spring 几个重要概念
● 传统的开发模式
解读上图
● IOC 的开发模式
解读上图
代码示例—入门
xml代码
注意事项和细节
1、说明
2、解释一下类加载路径
3、debug 看看 spring 容器结构/机制
综合解图 Spring
Spr…
目录
Spring
Spring 学习的核心内容
解读上图:
Spring 几个重要概念
● 传统的开发模式
解读上图
● IOC 的开发模式
解读上图
代码示例—入门
xml代码
注意事项和细节
1、说明
2、解释一下类加载路径
3、debug 看看 spring 容器结构/机制
综合解图 Spring
Spring 学习的核心内容 解读上图:
1、Spring 核心学习内容 IOC、AOP, jdbcTemplate, 声明式事务
2、IOC: 控制反转 , 可以管理 java 对象
3. AOP : 切面编程
4. JDBCTemplate : 是 spring 提供一套访问数据库的技术, 应用性强相对好理解
5. 声明式事务: 基于 ioc/aop 实现事务管理, 理解需要花时间
6. IOC, AOP 是重点同时难点
Spring 几个重要概念
1. Spring 可以整合其他的框架(解读: Spring 是管理框架的框架)
2. Spring 有两个核心的概念: IOC 和 AOP
3. IOC [Inversion Of Control 反转控制] ● 传统的开发模式
[JdbcUtils / 反射]程序------环境 //程序读取环境配置然后自己创建对象 解读上图
(以连接到数据库为例说明)
1、程序员编写程序, 在程序中读取配置信息
2. 创建对象, new Object???() // 反射方式
3. 使用对象完成任务
● IOC 的开发模式
程序-----容器 //容器创建好对象程序直接使用. 解读上图
1、Spring 根据配置文件 xml/注解, 创建对象 并放入到容器(ConcurrentHashMap)中,并且可以完成对象之间的依赖
2、当需要使用某个对象实例的时候, 就直接从容器中获取即可
3、程序员可以更加关注如何使用对象完成相应的业务, (以前是 new ... 注解/配置方式)
4. DI—Dependency Injection 依赖注入可以理解成是 IOC 的另外叫法.
5. Spring 最大的价值通过配置给程序提供需要使用的
web 层[Servlet(Action/Controller)]/Service/Dao/[JavaBean/entity]对象,这个是核心价值所在也是 ioc 的具体体现, 实现解耦 代码示例—入门
通过 Spring 的方式[配置文件]获取 JavaBean: Monster 的对象并给该的对象属性赋 值输出该对象信息.
查看容器注入了哪些 bean 对象,会输出 bean 的id 1. 创建容器 ApplicationContext 2. 该容器和容器配置文件关联 3. 通过getBean获取对应的对象 默认返回的是Object , 但是运行类型Monster 4. 输出 5. 也可以再获取的时候直接指定Class类型, 可以在次获取 6. 查看容器注入了哪些bean对象,会输出bean的id public void getMonster() {//解读//1. 创建容器 ApplicationContext//2. 该容器和容器配置文件关联ApplicationContext ioc new ClassPathXmlApplicationContext(beans.xml);//3. 通过getBean获取对应的对象// 默认返回的是Object , 但是运行类型Monster//Object monster01 ioc.getBean(monster01);Monster monster01 (Monster) ioc.getBean(monster01);//4. 输出System.out.println(monster01 monster01 运行类型 monster01.getClass());System.out.println(monster01 monster01 属性name monster01.getName() monserid monster01.getMonsterId());//5. 也可以再获取的时候直接指定Class类型, 可以在次获取Monster monster011 ioc.getBean(monster01, Monster.class);System.out.println(monster011 monster011);System.out.println(monster011.name monster011.getName());//6. 查看容器注入了哪些bean对象,会输出bean的idSystem.out.println();String[] beanDefinitionNames ioc.getBeanDefinitionNames();for (String beanDefinitionName : beanDefinitionNames) {System.out.println(beanDefinitionName beanDefinitionName);}System.out.println();System.out.println(ok~~~);}
xml代码 1. 配置monster对象/javabean 2. 在beans中可以配置多个bean 3. bean表示就是一个java对象 4. class属性是用于指定类的全路径-spring底层使用反射创建 5. id属性表示该java对象在spring容器中的id, 通过id可以获取到对象 6. property namemonsterId value100 用于给该对象的属性赋值 !----bean classcom.spring.bean.Monster idmonster01property namemonsterId value100/property namename value牛魔王/property nameskill value芭蕉扇//bean
注意事项和细节
1、说明 ClassPathXmlApplicationContext ioc new ClassPathXmlApplicationContext(beans.xml); 为什么读取到 beans.xml
2、解释一下类加载路径
获取类加载的路径 File f new File(this.getClass().getResource(/).getPath()); System.out.println(f); 3、debug 看看 spring 容器结构/机制 综合解图