Spring框架基础示例
来源:互联网 发布:土地数据可以从哪里找 编辑:程序博客网 时间:2024/05/31 19:18
作者
李权朗
术语准备
控制反转:
Inversion on Control , 控制反转 IOC
对象的创建交给外部容器完成,这个就做控制反转.
依赖注入, dependency injection 处理对象的依赖关系区别:
控制反转, 解决对象创建的问题 【对象创建交给别人】
依赖注入,
在创建完对象后, 对象的关系的处理就是依赖注入 【通过set方法依赖注入】
开发前准备
开发工具:eclipse
Spring版本:spring3.2
Spring核心工具包:commons-logging-1.1.3.jar、spring-beans-3.2.5.RELEASE.jar、spring-context-3.2.5.RELEASE.jar、spring-core-3.2.5.RELEASE.jar、spring-expression-3.2.5.RELEASE.jar,总共5个
开发步骤
一.运行eclipse,新建动态web项目,项目名字为Spring(ps:生成普通java项目也可以,不过web项目将工具包引入项目方便一点)
二.将上述5个开发包导入WebContent—>WEB-INF—>lib包
三.新建三个类,分别代表DAO层,业务逻辑层,和控制层
package cn.lang.testClass;/** * dao类,模拟操作数据库 * @author 程序猿 * */public class UserDao { public void save(){ System.out.println("保存数据"); }}
package cn.lang.testClass;/** * 业务逻辑层 * @author 程序猿 * */public class UserService { private UserDao userDao; public UserDao getUserDao() { return userDao; } public void setUserDao(UserDao userDao) { this.userDao = userDao; } public UserService(){ } public void save(){ userDao.save(); }}
package cn.lang.testClass;/** * 控制层 * @author 程序猿 * */public class UserAction { private UserService service; public UserService getService() { return service; } public void setService(UserService service) { this.service = service; } public void execute(){ service.save(); }}
四.在src下新建配置文件(bean.xml),用作IOC容器,代码如下:
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd"> <bean id="userDao" class="cn.lang.testClass.UserDao"></bean> <bean id="userService" class="cn.lang.testClass.UserService"> <!--property的name属性要与类中属性名字相同--> <property name="userDao" ref="userDao"></property> </bean> <bean id="userAction" class="cn.lang.testClass.UserAction"> <property name="service" ref="userService"></property> </bean></beans>
五.编写测试类
package cn.lang.testClass;import org.springframework.beans.factory.xml.XmlBeanFactory;import org.springframework.core.io.ClassPathResource;import org.springframework.core.io.Resource;/** * 测试类 * @author 程序猿 * */@SuppressWarnings("deprecation")public class Test { public static void main(String[] args){ Resource resource = new ClassPathResource("bean.xml"); XmlBeanFactory fa = new XmlBeanFactory(resource); UserAction userAction = (UserAction) fa.getBean("userAction"); userAction.execute(); }}/*Console输出:三月 20, 2016 1:16:20 下午 org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions信息: Loading XML bean definitions from class path resource [bean.xml]保存数据*/
以上是通过xml配置实体类,接下来演示通过注解配置bean类
一.先引入context名称空间
xmlns:context=”http://www.springframework.org/schema/context”
二.开启注解扫描
具体代码如下:
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd"> <!-- 开始注解扫描,base-package指定要扫描包的包名 --> <context:component-scan base-package="cn.lang.testClass"></context:component-scan></beans>
下面分别是使用注解的bean类
package cn.lang.testClass;import org.springframework.stereotype.Component;/** * dao类,模拟操作数据库 * @author 程序猿 * */@Component(value="userDao")public class UserDao { public void save(){ System.out.println("保存数据"); }}
package cn.lang.testClass;import javax.annotation.Resource;import org.springframework.stereotype.Component;/** * 业务逻辑层 * @author 程序猿 * */@Component(value="userService")public class UserService { @Resource(name="userDao") private UserDao userDao; public UserDao getUserDao() { return userDao; } public void setUserDao(UserDao userDao) { this.userDao = userDao; } public UserService(){ } public void save(){ userDao.save(); }}``
package cn.lang.testClass;
import javax.annotation.Resource;
import org.springframework.stereotype.Component;
/**
* 控制层
* @author 程序猿
*
*/
@Component(value = “userAction”)
public class UserAction {
@Resource(name = “userService”)
private UserService service;
public UserService getService() { return service;}public void setService(UserService service) { this.service = service;}public void execute(){ service.save();}
}
“`
总结:使用Spring主要有三个步骤,引入开发包、创建实体类和配置配置文件(xml文件)
- Spring框架基础示例
- spring 框架示例过程
- spring mvc 框架简易示例
- Spring 框架基础结构:
- Spring框架基础概念
- spring框架基础
- Spring框架基础
- spring框架基础学习
- Spring MVC 框架基础
- Spring框架基础
- Spring框架开发包和IOC示例
- Spring Boot整合Swagger框架示例项目。
- Java之Spring框架入门示例!
- Spring+mybatis 框架(配置文件、代码示例)
- Spring框架学习【AOP基础】
- Spring框架基础篇【一】
- 学习spring框架必备基础
- Spring框架基础之注解
- Java学习笔记(一)
- 5-19 支票面额 (15分)C语言
- Hadoop伪分布式环境搭建
- 设计模式学习笔记——抽象工厂模式
- leetcode:Palindrome Partitioning II
- Spring框架基础示例
- 安卓中转场动画小demo
- 灰度图像直方图变换的一些代码
- Android学习总结之viewPager
- Session共享之Memcached部署
- Java 接口和抽象类的区别和使用
- 真正的匿名上网——Tor浏览器
- Matlab Robotic Toolbox工具箱学习笔记
- 5-20 打印九九口诀表 (15分)c语言