1. spring概述
spring中有一个非常概念: bean (是java中的任何一种对象 javabean/service/action/数据源./dao, ioc(控制反转 inverse of control) di( dependency injection 依赖注入)。
spring实际上是一个容器框架(struts 是 web 框架 (jsp/action/actionfrom),hibernate 是 orm框架,处于持久层.),管理web层、业务层、dao层、持久层,该框架可以配置各个层的组件即种bean(action/service/domain/dao),并可以维护各个bean之间的关系,当我们需要使用某个bean的时候,我们可以getBean(id),使用即可.
ioc(inverse of controll ) 控制反转: 所谓控制反转就是把创建对象(bean),和维护对象(bean)的关系的权利从程序中转移到spring的容器(applicationContext.xml),而程序本身不再维护.。
di(dependency injection) 依赖注入: 实际上di和ioc是同一个概念,spring设计者认为di更准确表示spring核心技术。
2. spring快速入门(spring框架既可以用于web项目,也可以用于java项目)
(1)引入spring的开发包(最小配置spring.jar 该包把常用的jar都包括, 还要 写日志包 common-logging.jar
(2)创建spring的一个核心文件 applicationContext.xml, [hibernate有核心 hibernate.cfg.xml struts核心文件 struts-config.xml], 该文件一般放在src目录下,该文件中引入 xsd文件
(3)配置bean
<!-- 在容器文件中配置bean(service/dao/domain/action/数据源) -->
<!-- bean元素的作用是,当我们的spring框架加载时候,spring就会自动的创建一个bean对象,并放入内存 -->
代码示例:
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:context="http://www.springframework.org/schema/context" 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/context http://www.springframework.org/schema/context/spring-context-2.5.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd"> <bean id="userService" class="com.service.UserService"> <!-- 这里就体现出注入的概念. --> <property name="name"> //或者写成<property name="name" value="Join" /> <value>Join</value> </property> </bean> </beans>
UserService.java代码:
package com.service; public class UserService { private String name; public String getName() { return name; } public void setName(String name) { this.name = name; } public void sayHello(){ System.out.println("hello "+name ); byeService.sayBye(); } }
Test.java代码:
//spring 的applicationContext对象(容器对象) ApplicationContext ac=new ClassPathXmlApplicationContext("applicationContext.xml"); UserService us=(UserService) ac.getBean("userService"); us.sayHello();