一、初学SpringMVC+Mybatis之Spring简介
来源:互联网 发布:mac网络修复 编辑:程序博客网 时间:2024/05/29 16:31
1、什么是Spring
Spring是一个开源的轻量级的应用开发框架,目的是为了简化企业级编程。
Spring 提供了IOC和AOP的功能,能够管理各个bean对象之间的关系,可以将组建的耦合度降低,便于日后的维护和升级,实现各个模块的组件化编程。
2、Spring容器
Spring容器相当于创建Bean的抽象工厂。
在Spring中,任何的Java和JavaBean都被当成Bean处理,这是bean都交给Spring容器管理和使用。
3、如何创建Spring容器
Spring容器有BeanFactory和ApplicationContext两种类型,ApplicationContext继承自BeanFactory接口,拥有更多的企业级方法。本质上来讲,BeanFactory和ApplicationContext仅仅是维护bean组件的高级工厂接口。
实例化方法如下:
/** * applicationContext.xml Spring容器管理bean的配置文件 */String conf = "applicationContext.xml";ApplicationContext ac = newClassPathXmlApplicationContext(conf);
可以把conf配置文件放在src源文件夹下,也可以放在一个指定的包中。
4、Spring容器的使用
通过ApplicationContext的对象ac我们可以获取在Applicationbean.xml中配置好的Bean。
首先,我们要在容器中添加已创建的bean,把我们的对象交给容器去管理。Bean的定义方式:
package pers.zky.entity;import java.io.Serializable;/** * @author Zky * 创建一个Book 类的Bean */public class Book implements Serializable{ private String id; private String name; public Book() { } public String getId() { return id; } public void setId(String id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; }}
然后在application中添加bean:
<bean id="book" class="pers.zky.entity.Book"></bean>
接下来由ac对象调用getBean()方法获取Bean实例:
Student stu = ac.getBean("student",Student.class);
当然,自定义的bean可以交给Spring管理,Java自带的类也可以交给Spring管理。
xml:<bean id="cal" class="java.util.Calendar" factory-method="getInstance"></bean>java:Calendar c = ac.getBean("cal",Calendar.class);
5、使用Spring创建bean的方式
1)、通过构造器实例化bean
2)、通过静态工厂方法实例化bean
3)、通过实例工厂方法实例化bean
6、Spring容器中bean的作用域
在application.xml中,修改bean的scope属性,用来指明bean的作用域。
1)、sington 单例模式
在整个Spring容器中,使用singleton定义的Bean将只有一个实例。
XML:<bean id="student" class="pers.zky.entity.Student" scope="singleton"></bean>java:Student stu1 = ac.getBean("student",Student.class);Student stu2 = ac.getBean("student",Student.class);System.out.println(stu1==stu2);Console:true
2)、prototype 原型模式
通过静态工厂方法实例化bean
XML:<bean id="student" class="pers.zky.entity.Student" scope="prototype"></bean>java:Student stu1 = ac.getBean("student",Student.class);Student stu2 = ac.getBean("student",Student.class);System.out.println(stu1==stu2);Console:false
3)、request
在一次http请求中,一个bean定义对应一个实例,仅限于web环境。
4)、session
在一次http session中,一个bean定义对应一个实例,仅限于web环境。
5)、global session
在一个全局的http session中,一个bean定义对应一个实例,仅限于web环境。仅在基于portlet的web应用中才有意义,Portlet规范定义了全局session的概念。
7、Spring容器中bean的生命周期
指定销毁方法,必须是Singleton模式的bean;并且容器的接受者要变为AbstractApplicationContext才有close方法。
xml:<bean id="example" class="com.tz.entity.ExampleBean" init-method="init" destroy-method="destroy" lazy-init="true"></bean>java:package pers.zky.entity;import java.io.Serializable;/** * ExampleBean类,测试生命周期 * */public class ExampleBean implements Serializable{ public ExampleBean() { System.out.println("无参构造"); } public void init(){ System.out.println("初始化"); } public void service(){ System.out.println("执行"); } public void destroy(){ System.out.println("销毁"); }}console:无参构造初始化执行销毁
- 一、初学SpringMVC+Mybatis之Spring简介
- 五、初学SpringMVC+Mybatis之SpringMVC简介
- 二、初学SpringMVC+Mybatis之Spring IOC
- 三、初学SpringMVC+Mybatis之Spring参数注入
- 初学SpringMVC+Mybatis之Spring基于注解的组件扫描
- 四、初学SpringMVC+Mybatis之Spring基于注解的组件扫描
- 六、初学SpringMVC+Mybatis之SpringMVC基于XML的配置
- 七、初学SpringMVC+Mybatis之SpringMVC基于注解的配置
- MyBatis学习 之 一、MyBatis简介与配置MyBatis+Spring+MySql
- MyBatis学习 之 一、MyBatis简介与配置MyBatis+Spring+MySql
- MyBatis学习 之 一、MyBatis简介与配置MyBatis+Spring+MySql
- MyBatis学习 之 一、MyBatis简介与配置MyBatis+Spring+MySql
- MyBatis学习 之 一、MyBatis简介与配置MyBatis+Spring+MySql
- MyBatis学习 之 一、MyBatis简介与配置MyBatis+Spring+MySql
- MyBatis学习 之 一、MyBatis简介与配置MyBatis+Spring+MySql
- MyBatis学习 之 一、MyBatis简介与配置MyBatis+Spring+MySql
- MyBatis学习 之 一、MyBatis简介与配置MyBatis+Spring+MySql
- MyBatis学习 之 一、MyBatis简介与配置MyBatis+Spring+MySql .
- 无线监听工装使用说明
- 并查集
- java语言程序设计第十版(Introduce to java 10th) 课后习题 chapter7-30
- 特征选择之卡方统计 Chi-Square
- JNI问题
- 一、初学SpringMVC+Mybatis之Spring简介
- LaTeX数学公式
- listview的综合应用
- 三言两语说shader(二)黑屏效果
- Leetcode 39 Combination Sum
- C#程序层面的内存分页方法
- 获取iOS设备的信息
- ZOJ-3673-1729【数论】【分解质因数】【DFS】【好题】
- 51nod1413 权势二进制