Java高级框架-----Spring(一)
一:
1. Spring几大核心功能:
IOC/DI 控制反转/依赖注入
AOP 面向切面编程
声明式事务
2. Spring 框架的的runtime
2.1 test:Spring提供测试功能
2.2 Core Container:核心容器。Spring启动最基本条件
2.2.1 Beans:Spring负责创建类对象并管理对象
2.2.2 Core:核心类
2.2.3 Context:上下文参数。获取外部资源或管理注解等
2.2.4 SpEL:experssion.jar
2.3 AOP:实现aop功能需要依赖
2.4 Aspects:切面AOP依赖的包
2.5 Data Access/Integration:Spring 封装数据访问层相关内容
2.5.1 JDBC:Spring对JDBC封装之后的代码
2.5.2 ORM:封装了持久层框架的代码。例如:Hibernate
2.5.3 Transations:对应spring-tx.jar。声明式事务使用。
2.6 web:当Spring完成web相关功能时需要。
3. Spring框架中重要概念
3.1 容器(Container):Spring当做一个大容器
3.2 BeanFactory 接口,老版本
3.2.1 新版本中ApplicationContext接口,是BeanFactory 的子接口。BeanFactory 的功能在ApplicationContext中都有。
4.从Spring3开始把Spring框架的功能拆分为多个jar。
二:IOC
1. 中文名称:控制反转
2. 英文名称:Inversion of Control
3. IOC是什么
3.1 IoC完成的事情原先由程序员主动通过new实例化对象事情,转交给Spring负责
3.2 控制反转中控制指的是:控制类的对象
3.3 控制反转中反转指的是:转交给Spring负责
3.4 IoC最大的作用:解耦
3.4.1 程序员不需要管理对象。解除了对象管理与程序员之间的耦合。
三:
1. 导入jar包
2. 在src下新建applicationContext.xml
2.1 文件名称和路径自定义
2.2 记住spring容器ApplicationContext,applicationContext.xml配置的信息最终存储到了ApplicationContext容器中
2.3 Spring的配置文件基于schema(.xsd),理解为dtd的升级版,具有更好的扩展性(xmlns)
2.4 配置文件中只需要引入基本schema
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:aop="http://www.springframework.org/schema/aop"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop.xsd">
<!-- id 表示获取到对象标识
class 创建哪个类的对象
-->
<bean id="peo" class="com.bjut.pojo.People"/>
</beans>
2.4.1 通过<bean/> 创建对象
2.4.2 默认配置文件被加载时创建对象
三.编写测试方法
package com.bjut.text; import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext; import com.bjut.pojo.People; public class Text
{
public static void main(String[] args)
{
// People peo = new People();
ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");
People people = ac.getBean("peo",People.class);
System.out.println(people);
}
}
1.1 getBean(“<bean>标签ID值”,返回值类型);
如果没有第二个参数,默认是Object
1.2 getBeanDefinitionNames(),spring 容器中目前所管理的所有对象
四.Spring创建对象的三种方法:
1. 通过构造方法创建
1.1 无参构造创建:默认情况
1.2 有参构造创建:需要明确配置
1.2.1 需要在类中提供有参构造方法
1.2.2 在 applicationContext.xml 中设置调用哪个构造方法创建对象
1.2.2.1 如果设定的条件匹配多个构造方法执行最后的构造方法
1.2.2.2 index : 参数的索引,从 0 开始
1.2.2.3 name: 参数名
1.2.2.4 type:类型(区分开关键字和封装类 int 和 Integer)
<bean id="peo" class="com.bjsxt.pojo.People">
<!-- ref 引用另一个 bean value 基本数据类型或String 等 -->
<constructor-arg index="0" name="id" type="int"
value="123"></constructor-arg>
<constructor-arg index="1" name="name"
type="java.lang.String" value="张三
"></constructor-arg>
</bean>
2. 实例工厂
2.1 工厂设计模式:帮助创建类对象.一个工厂可以生产多个对象.
2.2 实例工厂:需要先创建工厂,才能生产对象
2.3 实现步骤:
2.3.1 必须要有一个实例工厂
public class PeopleFactory
{
public People newInstance()
{
return new People(1,"测试");
}
}
2.3.2 在 applicationContext.xml 中配置工厂对象和需要创建的对象
<bean id="factory"
class="com.bjsxt.pojo.PeopleFactory"></bean>
<bean id="peo1" factory-bean="factory"
factory-method="newInstance"></bean>
3. 静态工厂
3.1 不需要创建工厂,快速创建对象. 3.2 实现步骤
3.2.1 编写一个静态工厂(在方法上添加 static)
public class PeopleFactory
{
public static People newInstance()
{
return new People(1,"测试");
}
}
3.2.2 在 applicationContext.xml 中
<bean id="peo2" class="com.bjsxt.pojo.PeopleFactory"
factory-method="newInstance"></bean>
Java高级框架-----Spring(一)的更多相关文章
- Java高级框架------Spring(二)
五.如何给Bean的属性赋值(注入) 1. 通过构造方法来赋值 2. 设置注入(通过set方法) 2.1 如果属性是基本类型或String等简单 <bean id="peo" ...
- 初识轻量级Java开源框架 --- Spring
初识轻量级Java开源框架 --- Spring 作者:egg 微博:http://weibo.com/xtfggef 出处:http://blog.csdn.net/zhangerqing spri ...
- java DI 框架spring(web)、Guice(web)、Dagger&Dagger2(android)
java DI 框架spring(web).Guice(web).Dagger&Dagger2(android) (待续...)
- Java之框架Spring(一)
1. Spring是什么? Spring是一个开源框架 Spring为简化企业级应用而生.可以实现以前只有EJB才能实现的功能 Spring是一个IOC(DI)和AOP容器框架 具体描述:轻量级:Sp ...
- Java 高级框架——Mybatis(一)
一, SQl复习 a,数据库SQL命令 创建数据库并指定编码 Create database 数据库名 default character set utf8 create database ssm d ...
- Java日志框架-Spring中使用Logback(Spring/Spring MVC)
继上一篇文章http://www.cnblogs.com/EasonJim/p/7800880.html中所集成的是基于Java的普通项目,如果要在Spring和Spring MVC上集成,需要做如下 ...
- Java高级框架——Mybatis(二)
十.三种查询方式 1. selectList()返回值为List<resultType属性控制> 1.1 适用于查询结果都需要遍历的需求 List<Flower> list = ...
- Java后端框架之Spring Boot详解,文末有Java分布式实战项目视频可取
在 Java 后端框架繁荣的今天,Spring 框架无疑是最最火热,也是必不可少的开源框架,更是稳坐 Java 后端框架的龙头老大. 用过 Spring 框架的都知道 Spring 能流行是因为它的两 ...
- atititt.java定时任务框架选型Spring Quartz 注解总结
atititt.java定时任务框架选型Spring Quartz 总结 1. .Spring Quartz (ati recomm) 1 2. Spring Quartz具体配置 2 2.1. 增 ...
随机推荐
- 04bootstrap_表单
03bootstrap_表单 表单的基本实例 1.默认表单:form 表单域 fieldset legend label 提示span class="help-block" 2.基 ...
- post表单翻页保存搜索条件
问题:搜索条件下的数据,进行翻页行为后,搜索条件丢失 1.搜索表单 2.翻页 解决:既然点击页面跳转的a标签使用的方法是GET,而点击“搜索”按钮使用的方法是POST,那么可以让点击a标签实际上就是提 ...
- Go学习之初出茅庐
在一个月黑风高的夜晚,机缘巧合与Go语言一面之缘,被她的简洁.灵活.高效所吸引,让我有深入学习的冲动,现在开始我的成长之路吧.
- 兄弟连学python---网络简介
网络简介 1.什么是网络 网络是辅助双方能够连接在一起的工具 使用网络的目的 为了联通多方然后进行通讯,能够让软件在不同的电脑上运行,相互传输数据 网络的发展 网络协议 什么是协议 约定俗成的,没有理 ...
- vba data to input tool
public Sub InserDb() dim maxrow as integer dim maxcol as integer dim ddl as string dim recode as str ...
- 渗透测试学习 九、 MSsql注入上
MSsql注入漏洞详解 (Asp.Aspx站,常见于棋牌网站.考试网站.大学网站.政府网站.游戏网站.OA办公系统) 大纲:msSQL数据库调用分析 msSQL注入原理 msSQL注入另类玩法 msS ...
- 【开发】iOS入门 - XCode快捷键
XCode使用第一天,从熟悉快捷键开始... 搜索相关的快捷键: 搜文件.类和方法 - Command + Shift + O 搜字符串 - Command + Shift + F 定位文件 - Co ...
- Javascript 4.3 事件处理函数
鼠标指针悬停在某个元素上时触发一个动作:onmouseover事件处理函数 鼠标指针离开某个元素时触发一个动作:onmouseout事件处理函数 点击某个链接时触发一个动作:onclick事件处理函数 ...
- Yii2 设计模式——Yii2 中用到哪些设计模式?
Yii 2 设计模式“包含了两个方面的内容:1. 设计模式,2. Yii 2 框架. <设计模式>一书虽然以JAVA语言来表达设计模式的思想,但是设计模式远不限制于某一种特定的语言,而是在 ...
- redis 设置分布式锁要避免死锁
1. jedis 中 setnx key value 虽然可以处理同步问题 (setnx 有返回值 1是key不存在把它设置进去,0是key已经存在了)但是 setnx设置完后 程序的下一步 有可能挂 ...