spring---one
来源:互联网 发布:幸运双色球过滤软件 编辑:程序博客网 时间:2024/06/02 04:29
soring的核心是ioc和aop
为简化企业级用用开发而生
spring:提供的是一站式服务:
提供一站式服务的同时也提供了扩展接口 可以让别个框架替换自身
整合型框架
作用:1 整合
2:提供一个容器的概念:里面装开发中的javabean,要用就到容器里面取,这样的思想叫做ioc 降低三层耦合度
3:得到对象不需要new 告诉容器需要对象 容器会自动创建 在得到对象 降低耦合
4:面向接口 面向切面(将业务逻辑和系统服务分开)
注入方式:设置注入 构造注入
高类聚:一个类的业务劲量单一
低耦合:降低类鱼类的耦合
具体描述:
1 轻量级 非侵入性 指的是需要用spring时不需要去实现它的接口 和继承父类 直接用就可以
2 依赖注入
3 面向切面
4 使用xml和java注解实现
5 一站式的框架 在ioc和aop的基础上整合 几乎用了spring可以将javaee的特点都体现出来
ioc 反转资源获取方向-----一般的获取资源 是组键向容器发送请求的到资源 反转则是容器主动将资源推送给组键 拿来用就可以了
列如:你需要食品 传统是向政府要;反转获取就是 你放个框在院子 你要食品 政府自动给你放框里 大概意思
spring中容器将资源推送给自己管理的组件,组件以合理的方式来获取资源进行使用就可以了,这被称为查找的被动形式
在操作前先写好spring的配置文件--------applicationContext.xml
写好一个实体bean 属性 构造器 。。。。。。。。写好
平时创建一个对象时 我们需要new一个 实列
以下是spring的操作
<!-- 将简单对象声明在容器中 容器启动时则创建
通过反射 class="com.spring.beans.UserInfot"
类的全类名 得到类模板 下面就可以设置属性了
-->
<bean id="user" class="com.spring.beans.UserInfot">
<property name="userName" value="张三"></property>
<property name="password" value="123"></property>
</bean>
容器中bean的id是唯一标示
-----------------------------------------------------------------------------------------
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"
"http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<!-- 将简单对象声明在容器中 容器启动时则创建-->
<bean id="user" class="com.spring.beans.UserInfot">
<property name="userName" value="张三"></property>
<property name="password" value="123"></property>
</bean>
</beans>
测试:
public void main{
public void testUser(){
//创建ioc容器
//将appliction的文件中的配置的bean组件,纳入到上下文中去(启动)
//ClassPathXmlApplicationContext代表ioc容器
ClassPathXmlApplicationContext ac =
new ClassPathXmlApplicationContext("applicationContext.xml");
//得到容器中的对象 创建了java对象
UserInfot user=(UserInfot)ac.getBean("user");
//就可以调用这个对象的房发了 (具体参照day29spring)
System.out.println(user);
}
}
这样就创建好了一个对象 在企业级开发中 劲量少用new ;以保证开发的高类聚 和 低耦合 ,所有的软件开发都以这位准则
注意:spring在读取bean配置 创建bean实列之前,必须先对容器进行实列化,只有在容器实力化后,才可以获取ioc容器的bean实列并使用
spring'提供了两种配置模式:beanfactory 和 ApplicationContext
ApplicationContext是前者的子类 而且具有更高特性
前者面向spring自身 后者面向应用spring开发 几乎都用 后者而非前者(底层)
ClassPathXmlApplicationContext是ApplicationContext的接口实现类 从类路径加载
用它的getbean(id)读取
注入方式:属性注入(set方法常用) 构造器注入
<!-- 构造注入 -->
<bean id="serviceImpl" class="com.spring.service.impl.IUserServiceImpl">
<constructor-arg index="0" ref="IUserImpl"></constructor-arg>
</bean>
<!-- 设置属性注入
<bean id="userService" class="com.spring.service.impl.IUserServiceImpl">
<property name="userDao" ref="IUser"></property>
</bean>
其中 容器中bean配置的 : bean与bean之间的关系 用 ref 连接 相互引用 通过一个类另一个类设成自己的引用属性 在容器里面进行 连接
其中配置细节:index 参数位置从0开始
--------------------------------------------------------------------------
自动装配 bytype byname 根据名字或者类型 自动装配 不够灵活
- spring---one
- Spring学习-----ONE
- One
- one
- one:
- One
- ONE
- one
- one
- one
- one
- one
- one
- One!
- one
- one
- One
- one
- Android:Material系列:ActionBar-->Toolbar
- 1013. 数素数 (20)
- C语言实现字节流与十六进制字符串的相互转换
- passport.js学习笔记
- 解决ADB端口占用问题
- spring---one
- HDU 3038
- JavaScript闭包实现原理
- Raspberry安装ssh
- 求解答
- error LNK2019,cpp文件调用C代码
- extern "C" 与函数重载机制
- warning: function declared implicitly错误原因
- --专访雷果国: 从1.5K到18K 一个程序员的5年成长之路--