spring总结之一(spring开发步骤、bean对象的管理、bean生命周期)
###spring
1.概念:开源,轻量级,简化开发的企业级框架。
开源:免费,发展快。
轻量级:占内存小。
简化开发:通用的功能封装,提高程序员的开发效率。
------------------------------------------------------------------------------------------------------------------------------------
2.特点:
1)简化开发,提高开发效率
2)解耦
3) 集成第三方优秀的框架
------------------------------------------------------------------------------------------------------------------------------------
###spring容器(IOC容器)
Spring容器:Spring容器装bean对象的。(##Spring容器 bean工厂)
Bean:能创建对象的类。
开发步骤:
1)创建maven
2) 添加一个web.xml (#比如 前端控制器的配置)
3) 添加tomcat
4) 在pom.xml里面添加.jar包(#各种jar包 spring-webmvc包 junit包)
Spring-webmvc
junit <dependencies>
<!-- spring 的依赖jar包 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>4.3.9.RELEASE</version>
</dependency>
<!-- junit测试jar包 -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
</dependency> </dependencies>
5)写一个bean类(一个能创建对象的类)
package cn.sjl.spring.bean ;
public class HelloSpring{
public void sayHello(){
System.out.println("Hello Spring!");
}
}
6)通过配置文件把bean交给容器
把配置文件application.xml文件放到resources文件夹下面。
<bean id="hello" class="cn.sjl.spring.bean"/>
7)从spring容器中获取bean
a)获取容器对象
AbstractApplicationContext ac = new ClassPathXmlApplicationContext("application.xml");
b)从容器中获取bean对象
//getBean方法的第一个参数:表示配置文件中的id名
//...第二个参数:表示该类的Class类型的对象 用反射加载
HelloSpring hello = ac.getBean( "hello", HelloSpring.class);
hello.sayHello();
8)关闭容器
ac.close();
说明:测试类中用的较多。(单元测试)
------------------------------------------------------------------------------------------------------------------------------------
###spring管理bean对象的三种方式(面试题)
1.用无参的构造方法创建对象。(重点)
<bean id="配置文件中的id名" class="包名.类名";>
2.使用静态工厂实例化对象(了解)
静态工厂方法:使用静态方法获取对象的模式,叫静态工厂实例化对象
Calendar c = Calendar.getInstance(); <bean id="c" class="java.util.Calendar" factory-method="getInstance"/>
3.使用实例工厂方法实例化对象(了解)
cn.sjl.spring.bean
public class BeanFactory{
public Calendar getC(){
return Calendar.getInstance();
}
}
先创建对象,然后调用方法
<bean id="factory" class="cn.sjl.spring.bean.BeanFactory"/> <bean id="c1" factory-method="getC" factory-bean="factory"/>
------------------------------------------------------------------------------------------------------------------------------------
### Bean的生命周期
生命周期:从创建到销毁过程,叫生命周期
public class BeanLife{
public BeanLife(){
......("BeanLife");
}
public void init(){
......("init");
}
public void destroy(){
......("destroy);
}
}
<bean id="beanLife" class="xx.xx.BeanLife" init-method="init" destroy-method="destroy"/>
spring总结之一(spring开发步骤、bean对象的管理、bean生命周期)的更多相关文章
- SPRING IN ACTION 第4版笔记-第一章-005-Bean的生命周期
一. 1. As you can see, a bean factory performs several setup steps before a bean is ready touse. Let’ ...
- java EE技术体系——CLF平台API开发注意事项(4)——API生命周期治理简单说明
文档说明 截止日期:20170905,作者:何红霞,联系方式:QQ1028335395.邮箱:hehongxia626@163.com 综述 有幸加入到javaEE技术体系的研究与开发,也得益于大家的 ...
- laravel中的$request对象构造及请求生命周期
laravel应用程序中index.php是所有请求的入口.当用户提交一个form或者访问一个网页时,首先由kernel捕捉到该session PHP运行环境下的用户数据, 生成一个request对象 ...
- bean的autowire属性及其生命周期
一:sutowire属性 1.no:默认值,禁用自动装配: 2.byName:根据属性名称自动装配: 3.byType:根据属性类型自动装配: 4.constructor:通过构造方法自动装配,不推荐 ...
- Android开发之旅(二)服务生命周期和广播接收者生命周期
引言 应用程序组件有一个生命周期——一开始Android实例化他们响应意图,直到结束实例被销毁.在这期间,他们有时候处于激活状态,有时候处于非激活状态:对于活动,对用户有时候可见,有时候不可见.组件生 ...
- 【iOS开发】UIViewController的基本概念与生命周期
http://www.cnblogs.com/wayne23/p/3868535.html UIViewController是iOS顶层视图的载体及控制器,用户与程序界面的交互都是由UIViewCon ...
- Spring boot 整合JSP开发步骤
1. 新建Springboot项目,war <dependency> <groupId>org.springframework.boot</groupId> < ...
- bean在容器上的生命周期
初始化两种方法: 1,使用init-method属性指定那个方法在bean依赖关系设置好后自动执行. 2,实现initializingBean接口 实现 ...
- hibernate对象的状态以及生命周期
瞬时状态:session中没有,数据库中没有 持久状态:session中有,数据库中有 游离状态:session中没有,数据库中有 get和load都是用来提取数据的 get和load的区别: get ...
随机推荐
- 手机端 https://doc.vux.li/zh-CN/components/badge.html
https://doc.vux.li/zh-CN/components/badge.html 手机端前端框架
- Mongodb 基础 复制集原理和搭建
数据复制原理 开启复制集后,主节点会在local库下生成一个集合叫 oplog.rs,这是一个有限的集合,即大小固定.这个集合记入了整个mongod实例一段时间内数据库的所有变更操作(如:增/删/改) ...
- MySQL 基础 DDL和DML
DDL 数据库定义语句 创建数据库 create table if exits 数据库.表名( field1 数据类型 约束类型 commit 字段注释, field2 数据类型 约束类型 commi ...
- mybatis test条件判断 如何引用 传入的 list参数中的map中的值
<select id="query" resultType="map"> select * from ${tbName} <where> ...
- 4个项目带你学习ThinkPHP
ThinkPHP是一个快速.兼容而且简单的轻量级国产PHP开发框架,这里分享4个项目教程,带你掌握ThinkPHP,并能够在实践开发中应用. ThinkPHP框架实践 这个教程从ThinkPHP的入门 ...
- centos7安装Amber16 && AmberTools
Centos7 安装amber16 1.准备下载好的amber(Amber16.tar.bz2)及tools(AmberTools16.tar.bz2)安装包: $ cd MySoftware_hom ...
- nginx 日志详解及自定义日志配置
nginx的log日志分为access log 和 error log 其中access log 记录了哪些用户,哪些页面以及用户浏览器.ip和其他的访问信息 error log 则是记录服务器错误日 ...
- ssdb使用笔记
ssdb是一款类似于redis的nosql数据库,不过redis是基于内存的,服务器比较昂贵,ssdb则是基于硬盘存储的,很容易扩展,对于一些对速度要求不是太高的应用,还是不错的选择. 先记录一个比较 ...
- MyBatis基础入门《十 一》修改数据
MyBatis基础入门<十 一>修改数据 实体类: 接口类: xml文件: 测试类: 测试结果: 数据库: 如有问题,欢迎纠正!!! 如有转载,请标明源处:https://www.cnbl ...
- VMWare虚拟机 window文件传递
无论是将虚拟机的文件传到window上或者是将window上文件传到虚拟机上: 都可以选中文件,然后拖动文件到另一个系统上 提前:虚拟机安装了VMWARE Tools 1)window上文件拖到虚拟机 ...