步骤一:下载Spring开发包。

   官网:https://spring.io/           下载地址:https://repo.spring.io/libs-release-local/org/springframework/spring/

    spring-framework-3.0.2.RELEASE-dependencies和spring-framework-4.2.4.RELEASE-dist 解压第二个,解压目录:

    

步骤二:搭建项目,引入Spring项目

  

创建项目:由于Spring是JavaSE/EE一站式框架,所以既可以创建web项目或者java项目,这里创建web项目。

导入jar:Spring框架搭建肯定需要核心包,上面Core Container里面四个就是核心,其他的,需要什么功能添加哪个jar,在libs里面找。还有spring已经弄好的日志记录包,在dependencies里面log4j和commons包下

步骤三:引入相关配置文件(在src下创建)

log4j.properties

### direct log messages to stdout ###
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.err
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{}:%L - %m%n ### direct messages to file mylog.log ###
log4j.appender.file=org.apache.log4j.FileAppender
log4j.appender.file.File=c\:mylog.log
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{}:%L - %m%n ### set log levels - for more verbose logging change 'info' to 'debug' ###
# error warn info debug trace
log4j.rootLogger= info, stdout

applicationContext.xml文件(Spring的核心配置文件)

  头部引入:在解压下来的spring-framework-4.2.4.RELEASE-dist\docs\spring-framework-reference\html\xsd-configuration.html里面就有配置文件头部schema约束

<?xml version="1.0" encoding="UTF-8"?>
<beans
xmlns="http://www.springframework.org/schema/beans"
xmlns:p="http://www.springframework.org/schema/p"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd"> <!-- 配置,将实现类的对象创建交给Spring管理
bean标签:
id:给bean起个名字,唯一,不能重复,不能出现特殊字符,就看做根据面向接口编程new出来的实例
class:类的全路径,底层根据全路径生成实例
-->
<bean id="userDao" class="cn.xxx.dao.impl.UserDaoImpl">
<!-- 属性依赖注入,底层会自动封装,只要在dao实现类提供属性和set方法就行 -->
<property name="name" value="张三"></property>
</bean>
</beans>

UserDaoImpl.java(UserDao接口的实现)

package cn.xxx.dao.impl;

import cn.xxx.dao.UserDao;

/**
*@param
*@author cxh
*/
public class UserDaoImpl implements UserDao {
private String name; public void setName(String name) {
this.name = name;
} @Override
public void insert() { System.out.println(name+"用户信息插入");
} }

测试类:

  

    @Test
public void demo1() {
// 通过加载配置文件创建Spring工厂类(框架默认加载路径在src下,所以完全可以将配置文件放在一个目录下)
ApplicationContext applicationContext = new ClassPathXmlApplicationContext("/config/applicationContext.xml");
// 通过工厂来解析XML获取Bean的实例
UserDao userDao = (UserDao) applicationContext.getBean("userDao");
userDao.insert();
}

运行结果:

log4j:WARN No appenders could be found for logger (org.springframework.core.env.StandardEnvironment).
log4j:WARN Please initialize the log4j system properly.
张三用户信息插入

上面就是基于Spring的IOC的搭建。

  IOC:控制反转,将对象的创建权交给Spring

  DI:依赖注入,前提必须有IOC的环境,Spring在管理这个类的时候顺便会注入类的依赖的属性。

  对于上面applicationContext.xml文件里面bean标签还要在说:

 bean的生命周期配置(其实就是dao实现类实例的生命周期)

  •   init-method.属性:值可以随便取,Spring会帮创建一个初始化方法,当创建Dao实例时,默认加载,但是方法体为空,需要在dao实现类里面定义该值方法名的方法,里面写一些初始化加载东西。
  • destroy-method属性:和上面初始化用法一样,不过是销毁Dao实例后才会加载,也就是说工厂关闭了就销毁了。

 bean的作用范围配置(scope属性):

   singleton:默认的,Spring会采用单例模式创建这个对象

    prototype:  多例模式(Spring和Struts2整合时候用到,值栈是需要多例创建)

   request: Spring创建这个类后,将这个类存入到request域中,应用到web项目中。

     session: 同上,将类存到session域中。

   globalSession:应用到web中,必须在porlet环境下使用,其实就是指在一个地方存入信息后,在其子系统中也用该信息,最典型的的是腾讯软件的登录,如qq和qq空间,没有prolet环境就相当普通session。

Spring框架学习-搭建第一个Spring项目的更多相关文章

  1. Spring框架学习(7)spring mvc入门

    内容源自:spring mvc入门 一.spring mvc和spring的关系 spring mvc是spring框架提供的七层体系架构中的一个层,是spring框架的一部分,是spring用于处理 ...

  2. Spring框架学习(1)Spring简介

    内容源自:Spring 框架简介 Spring 是一个开源框架,是为了解决企业应用程序开发复杂性而创建的.框架的主要优势之一就是其分层架构,分层架构允许您选择使用哪一个组件,同时为 J2EE 应用程序 ...

  3. Spring框架学习(4)spring整合hibernate

    内容源自:spring整合hibernate    spring整合注解形式的hibernate 这里和上一部分学习一样用了模板模式, 将hibernate开发流程封装在ORM层提供的模板类Hiber ...

  4. Spring框架学习(5)spring整合struts2

    内容源自:spring整合struts2 一.spring框架对struts等表现层框架的整合原理 : 使用spring的ioc容器管理struts中用于处理请求的Action 将Action配置成i ...

  5. Spring框架学习(10)Spring中如何使用事务?

    内容源自:Spring中如何使用事务? 一.为什么要使用事务? 如果我们一个业务逻辑只执行一次sql,是不需要使用事务的.但如果要执行多条sql语句才能完成一个业务逻辑的话,这个时候就要使用事务了. ...

  6. Spring框架学习(8)spring mvc上传下载

    内容源自:spring mvc上传下载 如下示例: 页面: web.xml: <?xml version="1.0" encoding="UTF-8"?& ...

  7. Spring框架学习(3)spring中使用jdbc

    内容源自:spring中使用jdbc spring dao层中对jdbc进行了封装,使用模板模式的设计模式,通过ioc被动注入的方式将jdbcTemplate这个模板类注入到数据对象中,进行数据库操作 ...

  8. spring框架学习(八)spring管理事务方式之注解配置

    1.DAO AccountDao.java package cn.mf.dao; public interface AccountDao { //加钱 void increaseMoney(Integ ...

  9. spring框架学习(七)spring管理事务方式之xml配置

    1.DAO AccountDao.java package cn.mf.dao; public interface AccountDao { //加钱 void increaseMoney(Integ ...

随机推荐

  1. JMeter Web测试快速入门教程

    学习前的准备 学习本教程前,你的电脑上至少应该有Apache JMeter这款软件.如果你没有,点击此处下载. 当你点进去后,你会发现它是一个依赖Java的软件 因此如果你电脑上没有Java环境,你应 ...

  2. 小贝_mysql数据库备份与恢复

    mysql数据库备份与恢复 简要:        一.数据库备份        二.数据库恢复 一.数据库备份 1.备份简单说明 : 系统执行中,增量备份与总体备份 例: 每周日总体备份一次,周一到周 ...

  3. C++ 虚函数与纯虚函数 浅析

    [摘要] 在虚函数与纯虚函数的学习中.要求理解虚函数与纯虚函数的定义,了解虚函数与纯虚函数在实例化上的差异.掌握两者在实现上的必要性.熟悉纯虚函数在子类与孙类的函数类型.本文即针对上述问题展开阐述. ...

  4. reverse proxy and forward proxy

    1 什么是forward proxy 一句话,client的proxy就是forward proxy. 2 什么是reverse proxy 一句话,server的proxy就是reverse pro ...

  5. Adding Security to an Existing Website

    The procedure earlier in this article relies on using the Starter Site template as the basis for web ...

  6. Lightoj 1007 - Mathematically Hard

    1007 - Mathematically Hard    PDF (English) Statistics Forum Time Limit: 2 second(s) Memory Limit: 6 ...

  7. C#使用 webBrowser 控件总结

    using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...

  8. HDU2444 The Accomodation of Students —— 二分图最大匹配

    题目链接:https://vjudge.net/problem/HDU-2444 The Accomodation of Students Time Limit: 5000/1000 MS (Java ...

  9. BZOJ_2434_[Noi2011]阿狸的打字机_AC自动机+出栈入栈序+树状数组

    BZOJ_2434_[Noi2011]阿狸的打字机_AC自动机+出栈入栈序+树状数组 Description 阿狸喜欢收藏各种稀奇古怪的东西,最近他淘到一台老式的打字机.打字机上只有28个按键,分别印 ...

  10. 【转】使用git将项目上传到github(最简单方法)

    原文地址:http://www.cnblogs.com/cxk1995/p/5800196.html 首先你需要一个github账号,所有还没有的话先去注册吧! https://github.com/ ...