Sping框架初步使用1
Spring核心容器的理论:Spring核心容器就是一个超大工厂,所有的对象都会被当成Spring容器的核心管理对象,Spring把容器中一切对象统称为Bean(只要是一个Java类,Spring就可以管理该Java类)
初步感觉,Spring就是一个给开发者管理Java中所有对象的工具,开发者不在直接通过构造函数来构建对象,而是通过Spring来产生对象,对象间的各种依赖关系,通过Spring的配置来完成。
第一个例子:Spring的jar包下完后,还得在额外添加common-logging的Jar包-----这是书上看的,不理解为啥不把这个包放到Spring中,还要自己再下载。。。。
添加两个具有依赖关系的类,然后再添加Spring的配置文件(.xml),说是文件名没有限制,为了区分用的beans.xml
配置文件的根目录<beans></beans>里面放<bean>bean基本要有id --相当于这个bean的身份证,Class----对应类的位置。还有驱动setter方法的标签
在main函数中通过id来得到类的对象,调用类的方法
这个是配置文件:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-4.0.xsd"> <bean id="person" class="zhangtianxiao.Person">
<property name="axe" ref="axe"></property>
</bean>
<bean id="axe" class="zhangtianxiao.Axe">
</bean>
<bean class="zhangtianxiao.Listener">
</bean>
</beans>
下面是main方法:
package zhangtianxiao; import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext; public class Main { public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println("sdfsd");
ApplicationContext contex = new ClassPathXmlApplicationContext("beans.xml");
Person p = contex.getBean("person",Person.class);
p.useAxe(); EmailEvent e = new EmailEvent(new String("s"),"sdfsdfsd"); contex.publishEvent(e);
} }
在使用框架的包的时候,可以把所需某个框架的所有包添加成user labrary,以后使用的时候会方便很多
ApplicateContex是BeanFactory的子接口,但一般都会选择ApplicateContext(在加载配置文件的时候会按配置文件的要求创建出所有对象,对于资源比较紧张的系统可以使用BeanFactory这个接口,这个在加载配置文件的时候不会创建对象,只会在调用该bean的时候才创建)还有文件的各种加载方式,通过文件加载,通过类路径加载,,,,,
bean的定义:class:指定类
name:和id的作用类似,代表bean的标识符
scope:bean的作用域,如果在web项目中,
constructor-arg:这个会让框架去调用构造函数
properties:这个会让框架调用setter方法为属性赋值
。。。。。还有其他的
bean的作用域:singleton:单例,仅创建一个对象实例
prototype:每次请求特定bean时就会创建新的对象
bean的生命周期:可以为bean设置初始化和销毁时执行的方法,还要在配置文件中配置这两个方法
bean也可以定义继承,但这个继承和Java中的继承不太一样,这个只是简单的爸定义bean时重复性的代码抽取出来,减轻编码的工作量
Spring依赖注入:1.基于构造函数的依赖注入,通过constrator标签,去调用构造函数
2.基于设置值的依赖注入,这是通过propertied调用setter方法来完成注入
与内部类对应的还有内部bean
还可以通过注解的方式来代特配置文件
Spring的事件处理+自定义事件
Spring用来管理数据库访问的相关类
待续。。。。Spring JDBC Spring事物管理 Spring Web MVC框架
Sping框架初步使用1的更多相关文章
- sping 框架学习之——初始篇
sping框架学习: 1,什么是spring框架 spring是J2EE应用程序框架,是轻量级的IoC和AOP的容器框架,主要是针对javaBean的生命周期进行管理的轻量级容器,可以单独使用,也可以 ...
- Sping框架的IOC特性 悲观锁、乐观锁 Spring的AOP特性
Sping框架的IOC特性 IOC(Inversion of Control):控制反转 以下以课程与老师的安排来介绍控制反转. 一个合理的课程编排系统应该围绕培训的内容为核心,而不应该以具体的培训老 ...
- express框架初步
express框架初步使用 var exp = require('express'); var ejs = require('ejs'); var app = new exp(); app.set(& ...
- 从零搭建java后台管理系统(一)框架初步搭建
框架搭建 一.初步设想,使用springboot,框架打算用到依赖 spring web,devTools,mysql,Aspect,Redis,Lombok,Freemark,Shiro,Rabbi ...
- 自学tensorflow——1.框架初步了解以及构建简单的计算图计算
1.初步了解 tensorflow是谷歌的一款开源深度学习框架.运行前,需要先定义好计算图,最后通过会话启动计算图,这么做的目的是为了防止数据在python和c++(tensorflow底层)传输的时 ...
- Sping框架概述
一.什么是spring框架 spring是J2EE应用程序框架,是轻量级的IoC和AOP的容器框架,主要是针对javaBean的生命周期进行管理的轻量级容器,可以单独使用,也可以和Struts框架,i ...
- Android测试框架初步
一.实验目的 1.掌握android测试项目的建立 2.掌握android测试框架的基本内容 3.编写运行android测试 二.实验内容与步骤 建立android项目MyProject,运行截图如下 ...
- express 框架初步体验
一. 安装express 1.打开cmd 全局安装express 输入:npm install -gd express 2. 安装命令行工具,不然你输入express 会出现 不是内部命令. 输入: ...
- Django 框架初步了解
Django框架初探 1.web框架介绍 本质 socket 服务端 : 网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个socket.建立网络通信连接至少要一对端口号(s ...
随机推荐
- HTML5 SSE 数据推送应用开发
javascript表达行为,css表达外观,注意HTML既表达结构(逻辑结构),又表达内容(数据本身)通常需要更新数据时,并不需要更新结构,正是这种不改变组织结构仅改变数据的诉求,推动了数据拉取和数 ...
- git删除未监视的文件
新增的文件使用git status查看会提示Untracked files,如果想要删除Untracked files,可以使用如下命令: git clean -f # 删除Untracked fil ...
- Java50道经典习题-程序14 求日期
题目:输入某年某月某日,判断这一天是这一年的第几天?分析:(1)以3月5日为例,应该先把前两个月的加起来,然后再加上5天即本年的第几天 (2)特殊情况,闰年2月份的天数是29天,否则是28天 impo ...
- 【OCP-12c】2019年CUUG OCP 071考试题库(79题)
79.Which statement is true about transactions? A. A set of Data Manipulation Language (DML) statemen ...
- 【OCP|052】OCP最新题库解析系列-3
3.Which structure can span multiple data files?❑ A) a permanent tablespace❑ B) a bigfile tablespace❑ ...
- IECapt、CutyCapt 生成网页快照
IECapt.CutyCapt 生成网页快照 http://iecapt.sourceforge.net/ http://cutycapt.sourceforge.net/ 1.以管理员身份 运行c ...
- 零基础学习Python数据分析
网上虽然有很多Python学习的教程,但是大多是围绕Python网页开发等展开.数据分析所需要的Python技能和网页开发等差别非常大,本人就是浪费了很多时间来看这些博客.书籍.所以就有了本文,希望能 ...
- mysql常用日期、时间查询
好记性不如烂笔头 select curdate(); --获取当前日期 select last_day(curdate()); --获取本月最后一天. day); -- 获取本月第一天 ,interv ...
- Java方法区
方法区 在一个jvm实例的内部,类型信息被存储在一个称为方法区的内存逻辑区中.类型信息是由类加载器在类加载时从类文件中提取出来的.类(静态)变量也存储在方法区中. jvm实现的设计者决定了类型信息的内 ...
- Python库大全
网络 urllib -网络库(stdlib). requests -网络库. grab – 网络库(基于pycurl). pycurl – 网络库(绑定libcurl). urllib3 – Pyth ...