###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生命周期)的更多相关文章

  1. 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’ ...

  2. java EE技术体系——CLF平台API开发注意事项(4)——API生命周期治理简单说明

    文档说明 截止日期:20170905,作者:何红霞,联系方式:QQ1028335395.邮箱:hehongxia626@163.com 综述 有幸加入到javaEE技术体系的研究与开发,也得益于大家的 ...

  3. laravel中的$request对象构造及请求生命周期

    laravel应用程序中index.php是所有请求的入口.当用户提交一个form或者访问一个网页时,首先由kernel捕捉到该session PHP运行环境下的用户数据, 生成一个request对象 ...

  4. bean的autowire属性及其生命周期

    一:sutowire属性 1.no:默认值,禁用自动装配: 2.byName:根据属性名称自动装配: 3.byType:根据属性类型自动装配: 4.constructor:通过构造方法自动装配,不推荐 ...

  5. Android开发之旅(二)服务生命周期和广播接收者生命周期

    引言 应用程序组件有一个生命周期——一开始Android实例化他们响应意图,直到结束实例被销毁.在这期间,他们有时候处于激活状态,有时候处于非激活状态:对于活动,对用户有时候可见,有时候不可见.组件生 ...

  6. 【iOS开发】UIViewController的基本概念与生命周期

    http://www.cnblogs.com/wayne23/p/3868535.html UIViewController是iOS顶层视图的载体及控制器,用户与程序界面的交互都是由UIViewCon ...

  7. Spring boot 整合JSP开发步骤

    1. 新建Springboot项目,war <dependency> <groupId>org.springframework.boot</groupId> < ...

  8. bean在容器上的生命周期

            初始化两种方法:         1,使用init-method属性指定那个方法在bean依赖关系设置好后自动执行.         2,实现initializingBean接口 实现 ...

  9. hibernate对象的状态以及生命周期

    瞬时状态:session中没有,数据库中没有 持久状态:session中有,数据库中有 游离状态:session中没有,数据库中有 get和load都是用来提取数据的 get和load的区别: get ...

随机推荐

  1. golang 中 channel 的非阻塞访问方法

    在golang中,基本的channel读写操作都是阻塞的,如果你想要非阻塞的,可以使用如下示例: 即只要在select中加入default,阻塞立即变成非阻塞: package main import ...

  2. Linux du命令详解

    1.命令:du 2.命令功能:显示每个文件和目录的磁盘使用空间. 3.命令参数 -a或-all #显示目录中个别文件的大小. -b或-bytes #显示目录或文件大小时,以byte为单位. -c或-- ...

  3. nvm(Node Version Manager)管理node版本

    nvm全称Node Version Manager是 Nodejs 版本管理器,它让我们能方便的对 Nodejs 的版 本进行切换. nvm 的官方版本只支持 Linux 和 Mac. Windows ...

  4. 转:django模板标签{% for %}的使用(含forloop用法)

    django模板标签{% for %}的使用(含forloop用法)  {%  %}虽然这个是写在html中,但是这里边写的是服务端代码 在django模板标签中,{% for %} 标签用于迭代序列 ...

  5. ProxySQL(读写分离)部署

    proxySQL是MySQL的中间件产品,是灵活强大的代理层,实现读写分离,支持Query路由功能,支持动态指定某个SQL进行缓存,支持动态加载配置,故障切换和一些SQL 过滤功能 环境: 192.1 ...

  6. 基于MySQL提供的Yum repository安装MySQL5.6

    基于MySQL提供的Yum repository安装MySQL5.6 1:下载YUM包 1.1切换到root用户: 1)su - root 2)wget http://dev.mysql.com/ge ...

  7. PB窗体之间进行传递参数

    例:A窗口传递给B窗口y A窗口: 定义参数名称并赋值String s_parm  s_parm=username+'%'+password,然后openwithparm(w_main,s_parm) ...

  8. Visio 保存卡死解决办法

    右键Visio图标 属性--兼容性--以兼容模式运行这个程序 要打上对勾  且下面的系统版本要选和你电脑版本一致的选项 特权等级   以管理员身份运行次程序  要打上对勾

  9. Nginx常用功能

    3.Nginx常用功能 3.1 反向代理服务器 3.1.1.demo2 a.我在tomcat下部署了一个javaweb项目,tomcat安装的服务器IP为:192.168.37.136,部署的项目在t ...

  10. UML之状态机图

    状态机图 基本概念: 状态机图,UML 1.x规范中称状态图,是一个展示状态机的图. 状态机图基本上就是一个状态机中元素的投影,这也就意味着状态机图包括状态机的所有特征.状态机图显示了一个对象如何根据 ...