【Spring】浅析Spring框架的搭建
Spring是什么
Spring是一个开源的容器框架,用于配置bean并且维护bean之间关系的。其主要的思想就是IOC(Inversion Of Control,控制反转)或者称作DI(Dependency Injection,依赖注入)。IOC的解释就是程序中对象的获取方式发生反转,最初由new方式创建对象转化为由容器创建,注入,这样可以降低对象之间的耦合度。依赖注入,就是IOC的另一种说法,程序中被注入的对象依赖IOC容器中配置的对象。
Spring的结构图:
搭建Spring框架步骤
- 下载Spring开发包,Spring-4.3.4完整开发包下载。
- 在JavaProject下面建立一个lib目录,将开发包下面的libs目录里的所有以spring开头的jar文件,和commons-logging文件都拷贝到新建的lib里面。
- 将拷贝的文件全部选中,然后添加到Build path里。
简单Demo
我的结构目录:
建立一个User类
- package cn.shop.bean;
- import java.sql.Date;
- public class User {
- private int id;
- private String login_name;
- private String password;
- private Date birth;
- public User() {
- super();
- }
- public User(int id, String login_name, String password, Date birth) {
- super();
- this.id = id;
- this.login_name = login_name;
- this.password = password;
- this.birth = birth;
- }
- public int getId() {
- return id;
- }
- public void setId(int id) {
- this.id = id;
- }
- public String getLogin_name() {
- return login_name;
- }
- public void setLogin_name(String login_name) {
- this.login_name = login_name;
- }
- public String getPassword() {
- return password;
- }
- public void setPassword(String password) {
- this.password = password;
- }
- public Date getBirth() {
- return birth;
- }
- public void setBirth(Date birth) {
- this.birth = birth;
- }
- @Override
- public String toString() {
- return "User [id=" + id + ", login_name=" + login_name + ", password=" + password + ", birth=" + birth + "]";
- }
- }
User.java
建立一个UserDao类
- package cn.shop.dao;
- import java.util.List;
- import org.springframework.jdbc.core.BeanPropertyRowMapper;
- import org.springframework.jdbc.core.support.JdbcDaoSupport;
- import cn.shop.bean.User;
- public class UserDao extends JdbcDaoSupport {
- public List<User> selectAllUser(){
- return getJdbcTemplate().query("select * from xdl_user", new BeanPropertyRowMapper<User>(User.class));
- }
- }
UserDao
该类继承了JdbcDaoSupport类,该类里面有一个dataSource属性,该属性是用来创建jdbcTemplate用的。因为UserDao类直接继承了JdbcDaoSupport,因此可以拥有dataSource,便于后面在配置文件中设置。
上面除了query,还有queryForObject、update、execute。
- new BeanPropertyRowMapper<User>(User.class)
这样代码采用了反射技术,就是把查询到结果集反射到User类的属性上。因此该类的属性应该和数据表中的字段名对应,可以忽略大小写。
当然除了使用BeanPropertyRowMapper,还可以使用RowMapper。
建立一个Test类
- package cn.shop.test;
- import java.util.List;
- import org.junit.Test;
- import org.springframework.context.ApplicationContext;
- import org.springframework.context.support.ClassPathXmlApplicationContext;
- import cn.shop.bean.User;
- import cn.shop.dao.UserDao;
- public class UserDaoTest {
- @Test
- public void Test() throws Exception {
- ApplicationContext ac=new ClassPathXmlApplicationContext("applicationContext.xml");
- UserDao userDao=ac.getBean("userDao", UserDao.class);
- List<User> users = userDao.selectAllUser();
- System.out.println(users);
- }
- }
UserDaoTest.java
ApplicationContext是一个接口,由ClassPathXmlApplicationContext寻找applicationContext这个文件,在开发包里一个index.html的网页文件,读者可以在里面查找相应Spring版本的API文档。
ClassPathXmlApplicationContext类用来加载文件
ApplicationContext ac=new ClassPathXmlApplicationContext("applicationContext.xml");
建立applicationContext文件
- <?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:jdbc="http://www.springframework.org/schema/jdbc"
- xmlns:jee="http://www.springframework.org/schema/jee"
- xmlns:tx="http://www.springframework.org/schema/tx"
- xmlns:aop="http://www.springframework.org/schema/aop"
- xmlns:mvc="http://www.springframework.org/schema/mvc"
- xmlns:util="http://www.springframework.org/schema/util"
- xmlns:jpa="http://www.springframework.org/schema/data/jpa"
- xsi:schemaLocation="
- http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.1.xsd
- http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.1.xsd
- http://www.springframework.org/schema/jdbc http://www.springframework.org/schema/jdbc/spring-jdbc-4.1.xsd
- http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-4.1.xsd
- http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.1.xsd
- http://www.springframework.org/schema/data/jpa http://www.springframework.org/schema/data/jpa/spring-jpa-1.3.xsd
- http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.1.xsd
- http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.1.xsd
- http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-4.1.xsd">
- <!--导入数据库相关文件-->
- <util:properties id="db" location="classpath:db.properties"></util:properties>
- <bean id="database" class="org.apache.commons.dbcp.BasicDataSource">
- <!-- 驱动地址 -->
- <property name="driverClassName" value="#{db.driverClassName}"></property>
- <!-- 数据库的连接地址 -->
- <property name="url" value="#{db.url}"></property>
- <!-- 数据库的帐号 -->
- <property name="username" value="#{db.username}"></property>
- <!-- 数据库的密码 -->
- <property name="password" value="#{db.password}"></property>
- </bean>
- <bean id="userDao" class="cn.shop.dao.UserDao">
- <!--
- 在调用set方法进行赋值,
- Spring容器是通过反射技术 ,根据我们传递的name参数 , 得到对应的set方法名称, 将其调用
- -->
- <property name="dataSource" ref="database"></property>
- </bean>
- </beans>
applicationContext.xml
- <?xml version="1.0" encoding="UTF-8"?>
建立db.properties文件
- driverClassName=oracle.jdbc.OracleDriver
- url=jdbc:oracle:thin:@localhost:1521:xe
- password=517839
- username=system
关于上面beans的一些属性的使用,读者可以参见:Spring创建对象的三种方式
- driverClassName=oracle.jdbc.OracleDriver
Spring-tool-suite的是什么
Spring-tool-suite就是一个方便Spring开发的工具,在使用之前是需要进行安装的,Eclipse安装Spring-tool-suite。
这里介绍的配置Spring的方法,不足以达到SpringMVC的使用,关于SpringMVC的配置可以参见SpringMVC的非注解配置的两种方式
参考文章
http://blog.csdn.net/zoutongyuan/article/details/27073683
本文为博主原创文章,如需转载请注明出处。
【Spring】浅析Spring框架的搭建的更多相关文章
- Spring+SpringMvc+Mybatis框架集成搭建教程
一.背景 最近有很多同学由于没有过SSM(Spring+SpringMvc+Mybatis , 以下简称SSM)框架的搭建的经历,所以在自己搭建SSM框架集成的时候,出现了这样或者那样的问题,很是苦恼 ...
- 用IntelliJ IDEA 开发Spring+SpringMVC+Mybatis框架 分步搭建四:配置springmvc
在用IntelliJ IDEA 开发Spring+SpringMVC+Mybatis框架 分步搭建三:配置spring并测试的基础上 继续进行springmvc的配置 一:配置完善web.xml文件
- 用IntelliJ IDEA 开发Spring+SpringMVC+Mybatis框架 分步搭建三:配置spring并测试
这一部分的主要目的是 配置spring-service.xml 也就是配置spring 并测试service层 是否配置成功 用IntelliJ IDEA 开发Spring+SpringMVC+M ...
- 用IntelliJ IDEA 开发Spring+SpringMVC+Mybatis框架 分步搭建二:配置MyBatis 并测试(2 配置spring-dao和测试)
用IntelliJ IDEA 开发Spring+SpringMVC+Mybatis框架 分步搭建二:配置MyBatis 并测试(1 搭建目录环境和依赖) 四:在\resources\spring 下面 ...
- 用IntelliJ IDEA 开发Spring+SpringMVC+Mybatis框架 分步搭建二:配置MyBatis 并测试(1 构建目录环境和依赖)
引言:在用IntelliJ IDEA 开发Spring+SpringMVC+Mybatis框架 分步搭建一 的基础上 继续进行项目搭建 该部分的主要目的是测通MyBatis 及Spring-dao ...
- 用IntelliJ IDEA 开发Spring+SpringMVC+Mybatis框架 分步搭建一:建立MAVEN Web项目
一:创建maven web项目er
- SSM(Spring+SpringMVC+Mybatis)框架环境搭建(整合步骤)(一)
1. 前言 最近在写毕设过程中,重新梳理了一遍SSM框架,特此记录一下. 附上源码:https://gitee.com/niceyoo/jeenotes-ssm 2. 概述 在写代码之前我们先了解一下 ...
- Struts2+Spring+Hibernate(SSH)框架的搭建
首先需要下载struts2 ,spring4,hibernate5 的资源包; struts2资源包下载路径:http://www.apache.org/spring资源包下载路径:http://p ...
- Spring+SpringMvc+Mybatis框架集成搭建教程一(项目创建)
一.框架搭建环境 Spring 4.2.6.RELEASE SpringMvc 4.2.6.RELEASE Mybatis 3.2.8 Maven 3.3.9 Jdk 1.7 Idea 15.04 二 ...
- Spring+SpringMvc+Mybatis框架集成搭建教程四(项目部署及测试)
在IDEA中将项目部署到本地Tomcat下进行运行并验证整合结果 (1).点击如下图所示的下拉按钮,弹出Edit Configurations...后点击该项. (2).跳出如下界面后,点击红框内的& ...
随机推荐
- is_null, empty, isset, unset对比
is_null, empty, isset, unset 我们先来看看这4个函数的描述 isset 判断变量是否已存在(配置)unset 把变量删除(释放)掉empty 判断变量是否为空is_null ...
- 移动端页面按手机屏幕分辨率自动缩放的js
<script> var phoneWidth = parseInt(window.screen.width); var phoneHeight = parseInt(window.scr ...
- OGNL相关代码
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding= ...
- Android 圆形头像 自己动手
圆形头像DIY 现在大部分app使用的都是圆形头像,网上开源的也很多,但是有没有考虑过DIY圆形头像呢?下面就自己实现一个,先看下demo展示 第一步:原理解释(图片很丑,原理很真) 1.画外框圆形, ...
- 创建第二个 local network - 每天5分钟玩转 OpenStack(84)
GUI 中有两个地方可以创建 network: 1. Project -> Network -> Networks 这是普通用户在自己的 tenant 中创建 network 的地方. 2 ...
- Web APi之过滤器执行过程原理解析【二】(十一)
前言 上一节我们详细讲解了过滤器的创建过程以及粗略的介绍了五种过滤器,用此五种过滤器对实现对执行Action方法各个时期的拦截非常重要.这一节我们简单将讲述在Action方法上.控制器上.全局上以及授 ...
- 理解brk和sbrk
brk和sbrk的定义 在man手册中定义了这两个函数: #include <unistd.h> int brk(void *addr); void *sbrk(intptr_t incr ...
- 小菜学习Winform(二)WMPLib实现音乐播放器
前言 现在网上有很多的音乐播放器,但好像都不是.net平台做的,在.net中实现音乐文件的播放功能很简单,下面就简单实现下. SoundPlayer类 在.net提供了音乐文件的类:SoundPlay ...
- 【转】 个人认为,这是最详细的 android------HttpURLConnection 类用法详解。一些教材没讲到的,它讲到了
站在巨人的肩膀上,渐渐进步. 原文链接:http://www.blogjava.net/supercrsky/articles/247449.html 针对JDK中的URLConnection连接Se ...
- 1Z0-053 争议题目解析46
1Z0-053 争议题目解析46 考试科目:1Z0-053 题库版本:V13.02 题库中原题为: 46.What happens when you run the SQL Tuning Adviso ...