Spring是什么

Spring是一个开源的容器框架,用于配置bean并且维护bean之间关系的。其主要的思想就是IOC(Inversion Of Control,控制反转)或者称作DI(Dependency Injection,依赖注入)。IOC的解释就是程序中对象的获取方式发生反转,最初由new方式创建对象转化为由容器创建,注入,这样可以降低对象之间的耦合度。依赖注入,就是IOC的另一种说法,程序中被注入的对象依赖IOC容器中配置的对象。

Spring的结构图:

搭建Spring框架步骤

  1. 下载Spring开发包,Spring-4.3.4完整开发包下载
  2. 在JavaProject下面建立一个lib目录,将开发包下面的libs目录里的所有以spring开头的jar文件,和commons-logging文件都拷贝到新建的lib里面。
  3. 将拷贝的文件全部选中,然后添加到Build path里。

简单Demo

我的结构目录:

  1. 建立一个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

  2. 建立一个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。

  3. 建立一个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");

  4. 建立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

  5. 建立db.properties文件

    driverClassName=oracle.jdbc.OracleDriver
    url=jdbc:oracle:thin:@localhost:1521:xe
    password=517839
    username=system

    关于上面beans的一些属性的使用,读者可以参见:Spring创建对象的三种方式

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框架的搭建的更多相关文章

  1. spring的了解以及简单框架的搭建

    了解spring: Spring是一个开源的控制反转(Inversion of Controller)和面向切面(AOP)的框架,目的是为了简化开发. IOC(控制反转): public class ...

  2. SSM(Spring+SpringMVC+Mybatis)+Mysql 框架整合搭建流程以及其间注意事项

    复习SSM框架,太久没用自己手动撘一个,发现自己还是有很多地方忘记了和没注意的事项... 首先,直接给出总流程: 零.引jar包 1.引包(或者写maven.pom) 一.数据库部分 设计数据库各表结 ...

  3. Spring+SpringMvc+Mybatis框架集成搭建教程

    一.背景 最近有很多同学由于没有过SSM(Spring+SpringMvc+Mybatis , 以下简称SSM)框架的搭建的经历,所以在自己搭建SSM框架集成的时候,出现了这样或者那样的问题,很是苦恼 ...

  4. Spring+SpringMVC+Mybatis(SSM)框架集成搭建

    Spring+SpringMVC+Mybatis框架集成搭建教程 一.背景 最近有很多同学由于没有过SSM(Spring+SpringMvc+Mybatis , 以下简称SSM)框架的搭建的经历,所以 ...

  5. Struts2+Spring+Hibernate(SSH)框架的搭建

    首先需要下载struts2 ,spring4,hibernate5  的资源包; struts2资源包下载路径:http://www.apache.org/spring资源包下载路径:http://p ...

  6. asp.net mvc 简单项目框架的搭建(二)—— Spring.Net在Mvc中的简单应用

    摘要:上篇写了如何搭建一个简单项目框架的上部分,讲了关于Dal和Bll之间解耦的相关知识,这篇来把后i面的部分说一说. 上篇讲到DbSession,现在接着往下讲. 首先,还是把一些类似的操作完善一下 ...

  7. 用IntelliJ IDEA 开发Spring+SpringMVC+Mybatis框架 分步搭建四:配置springmvc

    在用IntelliJ IDEA 开发Spring+SpringMVC+Mybatis框架 分步搭建三:配置spring并测试的基础上 继续进行springmvc的配置 一:配置完善web.xml文件

  8. 用IntelliJ IDEA 开发Spring+SpringMVC+Mybatis框架 分步搭建三:配置spring并测试

    这一部分的主要目的是 配置spring-service.xml  也就是配置spring  并测试service层 是否配置成功 用IntelliJ IDEA 开发Spring+SpringMVC+M ...

  9. 用IntelliJ IDEA 开发Spring+SpringMVC+Mybatis框架 分步搭建二:配置MyBatis 并测试(2 配置spring-dao和测试)

    用IntelliJ IDEA 开发Spring+SpringMVC+Mybatis框架 分步搭建二:配置MyBatis 并测试(1 搭建目录环境和依赖) 四:在\resources\spring 下面 ...

  10. 用IntelliJ IDEA 开发Spring+SpringMVC+Mybatis框架 分步搭建二:配置MyBatis 并测试(1 构建目录环境和依赖)

    引言:在用IntelliJ IDEA 开发Spring+SpringMVC+Mybatis框架 分步搭建一   的基础上 继续进行项目搭建 该部分的主要目的是测通MyBatis 及Spring-dao ...

随机推荐

  1. Redis实战总结-配置、持久化、复制

    Redis的配置主要放置在redis.conf,可以通过修改配置文件实现Redis许多特性,比如复制,持久化,集群等. redis.conf部分配置详解 # 启动redis,显示加载配置redis.c ...

  2. ImageLoader初始化以及调用

    1.首先在当前程序的Application中调用ImageLoader的初始化init()方法 [java] view plain copy private void initImageLoader( ...

  3. C#.NET常见问题(FAQ)-构造器constructor有什么用

    所谓的构造器constructor,就是声明类的时候定义一个public 类名的方法,这个方法不需要传递任何数据,这样的话在声明任何类的实例的时候都会无条件执行里面的方法   析构器只在程序销毁的时候 ...

  4. Swift语言精要 - 属性

    1. Stored Property eg: var number: Int = 0 2. Computed Property eg: var area : Double { get { return ...

  5. 整理收集49条JQuery代码小结

    1. 如何创建嵌套的过滤器 . 代码如下: //允许你减少集合中的匹配元素的过滤器, //只剩下那些与给定的选择器匹配的部分.在这种情况下, //查询删除了任何没(:not)有(:has) //包含c ...

  6. MVC 之 缓存机制(二)

    八.应用程序缓存 应用程序缓存提供了一种编程方式,可通过键/值对将任意数据存储在内存中. 使用应用程序缓存与使用应用程序状态类似. 但是,与应用程序状态不同的是,应用程序缓存中的数据是易失的, 即数据 ...

  7. tortoisegit 右键无图标

    如果你安装 TortoiseGit之后,发现文件夹或文件左上角就是不显示图标,那么以下步骤就是最好的解决办法. 工具/原料   TortoiseGit 方法/步骤     确认是不是64bit 系统上 ...

  8. 转 PHP常用正则表达式汇总

    1.    平时做网站经常要用正则表达式,下面是一些讲解和例子,仅供大家参考和修改使用: 2.    "^\d+$" //非负整数(正整数 + 0) 3.    "^[0 ...

  9. GitHub搭建个人网站详细教程

    GitHub搭建个人网站详细教程: http://blog.csdn.net/gane_cheng/article/details/52203759

  10. 快速生成100W条数据

    快速生成100W条数据,生成的时候是顺序生成,取的时候是随机取用,生成100W条数据大概一分多钟,比网上其他代码速度要快很多 )) --truncate table tb --select top 1 ...