博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Spring入门
阅读量:7239 次
发布时间:2019-06-29

本文共 3228 字,大约阅读时间需要 10 分钟。

a )简介

    Spring框架,可以解决对象创建以及对象之间依赖关系的一种框架,且可以和其他框架一起使用;Spring与Struts, Spring与hibernate (起到整合(粘合)作用的一个框架)

Spring提供了一站式解决方案:

1)  Spring Core spring的核心功能: IOC容器, 解决对象创建及依赖关系

2) Spring Web Spring对web模块的支持。  可以与struts整合,让struts的action创建交给spring -spring mvc模式

3) Spring DAO Spring 对jdbc操作的支持 【JdbcTemplate模板工具类】

4) Spring ORM spring对orm的支持:  既可以与hibernate整合,【session】  也可以使用spring的对hibernate操作的封装

5) Spring AOP 切面编程

6) SpringEE spring 对javaEE其他模块的支持

下面来源

于百度图片

b)时序图

(来源百度)

是不是已经懵了,其实没那么深奥.先来做一个helloworld就明白了

c)开发步骤

      spring各个版本中: 在3.0以下的版本,源码有spring中相关的所有包【spring功能 + 依赖包】 如2.5版本;

在3.0以上的版本,源码中只有spring的核心功能包【没有依赖包】 (如果要用依赖包,需要单独下载![还可以去老版本中找])

1) 源码, jar文件:spring-framework-3.2.5.RELEASE

  commons-logging-1.1.3.jar            日志

  spring-beans-3.2.5.RELEASE.jar    bean节点

  spring-context-3.2.5.RELEASE.jar   spring上下文节点

  spring-core-3.2.5.RELEASE.jar       spring核心功能

  spring-expression-3.2.5.RELEASE.jar  spring表达式相关包

以上是必须引入的5个jar文件,在项目中可以用户库管理!

2) 核心配置文件: applicationContext.xml Spring配置文件:applicationContext.xml / bean.xml

    不会写xml约束文件?没关系,有参考  该路径下 spring-framework-3.2.5.RELEASE\docs\spring-framework-reference\htmlsingle\index.html

  这里还是给个示例:

1 
10 11

     发现没spring约束是schema,上一篇随笔struts的约束是dtd.

先解决对象创建吧(剧透:可能整个项目你都看不到一个new关键字哦,这就是spring神奇的地方)

     SpringIOC容器 

      IOC容器创建对象: 创建对象, 有几种方式:

        1) 调用无参数构造器

        2) 带参数构造器

        3) 通过 property [setXxx()]方法初始化对象

 1.无参初始化对象

  略 

 2.有参数初始化对象

1 
2
8
13
14
15
16
17
18

 

3.通过 property [setXxx()]方法初始化对象

1 
2
6 7
10
11
12
13
14
15

 

代码:

 

1 package test_spring; 2  3 import org.springframework.beans.factory.BeanFactory; 4 import org.springframework.beans.factory.xml.XmlBeanFactory; 5 import org.springframework.context.ApplicationContext; 6 import org.springframework.context.support.ClassPathXmlApplicationContext; 7 import org.springframework.core.io.ClassPathResource; 8 import org.springframework.core.io.Resource; 9 10 public class App {11     public static void test1(){12         /**13          * 方式一14          */15         //1.加载资源文件16         Resource resource = new ClassPathResource("bean.xml");17         //2.创建工厂18         BeanFactory bf = new XmlBeanFactory(resource);19         //3.获取对象20         User user1 = (User) bf.getBean("myUser");21         System.out.println(user1);22     }23 24     public static void test2(){25         /**26          * 方式二  **推荐第二种**27          */28          //1.加载资源并获得工厂29          ApplicationContext context = new ClassPathXmlApplicationContext ("bean.xml");30          //2.获取对象  2.1 2.2 二选一,推荐使用2.131              //2.1 设置属性"setXxx()"的初始化对象 32              //User user2 = (User) context.getBean("myUser1");33              //2.2 构造器初始化对象 34              User user3 = (User) context.getBean("myUser2");35            //System.out.println(user2);36          System.out.println(user3);37             38         }39 public static void main(String arg[]){40         //test1(); 41         test2(); //User [name=kangkang, sex=man, number=456] 42    } 43  }

 

目录结构:

 

 

 

未完待续......

 

转载于:https://www.cnblogs.com/kingshing/p/7389739.html

你可能感兴趣的文章
Js基础知识之----数据类型概述
查看>>
项目中常用的19条MySQL优化
查看>>
实现点击按钮后的CSS加载效果
查看>>
svg 线条动画浅尝
查看>>
LeetCode题库-深度优先搜索部分
查看>>
Java学习记录02
查看>>
Node.js是什么?
查看>>
Maven依赖冲突处理
查看>>
Python学习教程(Python学习路线):Python3你还未get到的隐藏技能
查看>>
258 Add Digits
查看>>
绘制 UIView 指定的边框
查看>>
nChain再获数字货币安全专利,助力BCH更加安全可靠
查看>>
关于content-Type看这偏文章就OK了
查看>>
HandleError过滤器
查看>>
Java标准库提取URL的域名
查看>>
SQL -- 简单语句学习总结7条
查看>>
Linux下安装php的memcache扩展库
查看>>
sgen.exe 已退出 代码为 1
查看>>
我的友情链接
查看>>
微信公众平台开发入门教程_无需整理
查看>>