Spring框架学习之第1节
spring快速入门
① spring是什么?
Struts是web框架(jsp/action/actionform)
hibernate是orm框架(对象和关系映射框架),处于持久层
spring是容器框架,用于配置bean,并维护bean之间关系的一种框架
在spring中有一个非常重要的概念,bean的概念很大
bean(是Java中的任何一种对象,Javabean/servie/action/数据源/dao,ioc(控制反转inverse of control),di(dependency injection)依赖注入 )
画一个层次框架图:
pojo(Java简单对象)

快速入门
开发一个spring项目
1、引入spring的开发包(最小配置spring.jar该包把常用的jar都包括了、还要一个写日志的包common-logging.jar)
2、创建spring的一个核心文件applicationContext.xml,[hibernate有核心hibernate.cfg.xml,struts核心文件struts-config.xml],该文件一般放在src目录下
xml中规范文件2.5以前用的是dtd,2.5以后用的是->xsd schmea文件,用来约束文件中的元素,子元素以及出现的顺序。
applicationContext.xml中引入xsd文件:可以从给出的案例中拷贝一份。
3、配置bean
4、在Test.java中使用
项目目录结构:

applicationContext.xml
<?xml version="1.0" encoding="utf-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd"> <!-- 在容器文件中配置bean(service/dao/domain/action/数据源) -->
<!-- bean元素的作用是,当我们的spring框架加载的时候,spring就会去看这里面有没有bean,如果有这个bean spring就会自动创建这个bean对象,并且将其装在到内存里面去 -->
<!--
类似于:Userservice userService = new UserService();
id号是和对象的变量名对应的,如果id号为litao,则这句话的含义为
UserService litao = new UserService();
property为属性值,name为注入这个属性,等价于
userService.setName("小明");set方法必须写否则注入不进去 -->
<bean id="userService" class="com.service.UserService">
<!-- 这里体现了容器的特点,配置bean并注入属性,体现出注入的概念 -->
<property name="name">
<value>小明</value>
</property>
</bean>
</beans>
UserService.java
package com.service;
public class UserService {
public String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public void sayHello(){
System.out.println("hello " + name);
}
}
Test.java
package com.test; import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext; import com.service.UserService; public class Test { public static void main(String[] args){
//我们先使用传统方法,来调用UserService的sayHello方法
UserService userService = new UserService();
userService.setName("小明");
userService.sayHello(); //我现在来使用spring来完成上面的任务
//1.得到spring的applicationContext对象(容器对象)
//通过类路径加载文件,这个对象就对象applicationContext.xml文件
ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");
UserService us = (UserService)ac.getBean("userService");
us.sayHello();
}
}
Spring框架学习之第1节的更多相关文章
- Spring框架学习之第2节
传统的方法和使用spring的方法 使用spring,没有new对象,我们把创建对象的任务交给了spring的框架,通过配置用时get一下就行. 项目结构 applicationContext.xml ...
- Spring框架学习之第9节
aop编程 aop(aspect oriented programming)面向切面(方面)编程,是所有对象或者是一类对象编程,核心是(在不增加代码的基础上,还增加新功能) 汇编(伪机器指令 mov ...
- Spring框架学习之第8节
<bean id=”foo” class=”…Foo”> <property name=”属性”> <!—第一方法引用--> <ref bean=”bean对 ...
- Spring框架学习之第3节
model层(业务层+dao层+持久层) spring开发提倡接口编程,配合di技术可以更好的达到层与层之间的解耦 举例: 现在我们体验一下spring的di配合接口编程,完成一个字母大小写转换的案例 ...
- Spring框架学习之第7节
配置Bean的细节 ☞尽量使用scope=”singleton”,不要使用prototype,因为这样对我们的性能影响较大 ②如何给集合类型注入值 Java中主要的map,set,list / 数组 ...
- Spring框架学习之第6节
bean的生命周期 为什么总是一个生命当做一个重点? Servlet –> servlet生命周期 Java对象生命周期 往往笔试,面试总喜欢问生命周期的问题? ① 实例化(当我们的程序加载 ...
- Spring框架学习之第5节
request session global-session 三个在web开发中才有意义 如果配置成prototype有点类似于request 如果配置成singleton有点类似于web开发中的gl ...
- Spring框架学习之第4节
从ApplicaionContext应用上下文容器中获取bean和从bean工厂容器中有什么区别: 具体案例如下 结论: 1.如果使用上下文ApplicationContext,则配置的bean如果是 ...
- Spring框架学习一
Spring框架学习,转自http://blog.csdn.net/lishuangzhe7047/article/details/20740209 Spring框架学习(一) 1.什么是Spring ...
随机推荐
- ASP.NET&AJAX&JSON - 动态读取数据
因为之前帮WM组做了一个delivery的dashboard,大概用了3周的时间,.net也忘了差不多了,ajax和highchart表也是现学的,蛮费劲!总算也搞出来了.发帖纪录一下. 1. 前台A ...
- SetTmer函数调用 、取时间函数调用 、计时函数
SetTmer函数调用 #include <iostream> 取时间函数调用 计时函数
- PE格式的理解(待补充)
PE文件格式 一.基本结构 1.DOS头一般到节区头成为PE头部分,其下称为PE体.文件的内容一般可分为代码(.text).数据(.data).资源(.rsrc),分别保存. 2.PE头与各节区的尾部 ...
- js 完成对图片的等比例缩放的方法
/* 重新按比例设置 页面上对应图片的长和高, */ function resetImgSize(id,imgWidth,imgHeight,posWidth,posHeight) { var wid ...
- 我教女朋友学编程html系列(5) html中table的用法和例子
女朋友不是学计算机的,但是现在从事计算机行业,做技术支持,她想学习编程,因此我打算每天教她一点点,日积月累,带她学习编程,如果其他初学者感兴趣,可以跟着学. 为了将table介绍的简单.生动,具有实战 ...
- 网络---中断套接字Socket
package socketpack_2; import java.awt.BorderLayout; import java.awt.EventQueue; import java.awt.even ...
- JavaScript的DOM操作(2)
补充: 回车符\r和换行符\n的区别:\r 相当于enter,是段落与段落之间的区别, \n 相当于shift+enter,是行与行之间距离,比较小 几种window操作方法: 1.获取当前窗口大 ...
- IIS和MVC
现象:MVC项目部署到IIS(7.5)后,浏览时只显示文件目录,不是网站 解决办法 1.服务器安装程序对应的Framework版本 2.服务器安装程序对应的MVC版本 3.安装CGI和ISAPI扩展: ...
- hdu 3007 Buried memory 最远点对
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3007 Each person had do something foolish along with ...
- 【BZOJ】【3504】【CQOI2014】危桥
网络流/最大流 比较裸的最大流= = 无向图上走来回其实就等价与走两遍>_> 如果路径有相交其实不影响答案的 比较恶心的是两个人路过同一座桥,但走的方向不同互相抵消流量了…… 其实只要在第 ...