`
Linkcyzk
  • 浏览: 2511 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

01---Spring框架

阅读更多
  1. Spring框架简介及官方压缩包目录介绍
  2. 工厂模式
  3. Spring环境搭建
  4. IoC详解
  5. Spring创建Bean的三种方式(包含两种工厂方式)
  6. scope属性讲解
  7. DI详解
  8. Spring中几种注入方式
  9. Spring解析properties文件
  1. Spring框架简介及官方压缩包目录介绍

  1. 主要发明者:Rod Johnson

  2. 轮子理论推崇者:

    2.1 轮子理论:不用重复发明轮子.

    2.2 IT行业:直接使用写好的代码.

  3. Spring框架宗旨:不重新发明技术,让原有技术使用起来更加方便.

  4. Spring几大核心功能

    4.1 IoC/DI    控制反转/依赖注入

    4.2 AOP      面向切面编程

    4.3 声明式事务.

    4.4 采用模板方式对其他技术的支持

    4.5 spring的定时器

    5.注意spring中的不同的版本中。包的结构以及名称、数量都会有变化。

     

.工厂模式

工厂模式时候实例化对象的一种设计模式。可以降低对象之间的耦合度。通过工厂对象来解耦。更符合程序设计开闭原则。

        1. 简单工厂

        2. 抽象工厂

        3. 通用工厂

           

.Spring环境搭建

1.导入jar

基本jar

 

 

2.创建spring的配置文件

2.1spring的配置文件可以叫任意的名称。默认的习惯于applicationContext.xml

2.2spring的配置文件可以在项目的任意位置。一般默认的我们会放到src的根下。

2.2.1如果没有添加约束文件。需要自己手动或者联网状态下载spring的约束文件

3.spring的配置文件中通过<bean>标签来告知spring管理哪个对象的生命周期

3.1<bean> id:表示唯一的一个标记。不能重复

3.2<bean> class:把哪个类实例化。

4.启动spring框架

4.1启动时指定创建哪个IOC容器

4.1.1BeanFactry:基本的IOC容器。只是缓存对象。

4.1.2ApplicationContext:高级IOC容器。是beanFactory的子接口 扩展了BeanFactory的能力。添加了如 解析properties 国际化等处理

 

.IoC详解

1.IOCInversion of contorl)控制反转

2.控制:实例化对象的过程

3.反转:原来实例化一个对象的过程他的控制权是掌握在我们程序员自己手中的。而现在整个对象创建过程完全交由spring来负责。

4.容器(container)并不是值的是web容器。他不能处理请求。该容器是指,spring缓存对象的集合(Map<String,Object>)

 

.Spring创建Bean的三种方式(包含两种工厂方式)

 

1.BeanFactoryApplicationContext对象的区别

1.1创建对象的时间

BeanFactory是在调用getBean方法时,先去创建对象。

ApplicationContext是在启动spring框架时就讲所有的对象创建好。

1.2 能力上的区别

BeanFactory只是你一个基本的IOC容器。只能缓存对象没有额外的能力。而ApplicaitonContenxt可以操作properties,国际化等。。。

 

1.使用无参的构造方法

Spring的配置文件

<bean id="suibian" class="com.bjsxt.dao.SpringTest"></bean>    

 

2.使用工厂模式来创建对象

<!-- 使用工厂模式来构建对象 -->

    <!-- 1.配置能够产生对象的工厂 -->

    <bean id="factory" class="com.bjsxt.commons.ObjectFactory"></bean>

    <!-- 告知spring哪个工厂中调用的哪个方法 -->

    <bean id="test" factory-bean="factory" factory-method="createSpringTest"></bean>

 

4.使用工厂中的静态方法来获取对象

<!-- 调用工厂中的静态方法获取对象 -->

<bean id="test" class="com.bjsxt.commons.ObjectFactory"  factory-method="createSpringTest"></bean>

 

.scope属性讲解

Scope属性是spring配置文件中的<bean>标签的属性。他决定了采用什么方式来创建对象(单例,多例) scope的取值范围为:

Prototype:多例

Singleton:单例(默认值)

 

.DI详解与Spring中几种注入方式

1.DIdependence injection

2.使用构造方法完成值的注入

<constructor-arg index="" name="" type="" value=""></constructor-arg>

2.1.index: 表示构造方法中的参数的位置。注意从0开始

2.2.name:按照构造方法的参数的名称完成注入。

2.3.type:根据类型匹配位置

2.4.value:注入的值(value一般用于存放基本数据类型+String)

 

3.基于属性的注入方式

3.1 要求类中必须要含有一个无参的构造方法。

3.2 要求属性必须提供set方法。

<bean id="suibian" class="com.bjsxt.dao.SpringTest" scope="prototype">

    <property name="msg" value="lisi"></property>

    </bean>    

 

4.注入其他类型

4.1 注入set类型

<bean id="suibian" class="com.bjsxt.dao.SpringTest" scope="prototype">

    <!-- <property name="msg" value="lisi"></property> -->

    <property name="set">

     <set>

     <value>a</value>

     <value>b</value>

     <value>c</value>

     </set>

    </property>

    </bean>    

 

4.2 注入List类型

<bean id="suibian" class="com.bjsxt.dao.SpringTest" scope="prototype">

    <property name="list">

    <list>

    <value>aa</value>

     <value>bb</value>

     <value>cc</value>

    </list>

    </property>

    </bean>    

 

4.3 注入一个Map

    <bean id="suibian" class="com.bjsxt.dao.SpringTest" scope="prototype">

    <property name="map">

    <map>

    <entry key="key1">

    <value>aaa</value>

    </entry>

    <entry key="key2">

    <value>bbb</value>

    </entry>

    </map>

    </property>

    </bean>   

 

4.4 注入一个properties

    <bean id="suibian" class="com.bjsxt.dao.SpringTest" scope="prototype">

    <property name="prop">

    <props>

    <prop key="key1">

    aaaa

    </prop>

    <prop key="key2">

         bbbb

    </prop>

    </props>

    </property>

    </bean>

 

4.5 注入springIOC容器中的对象

要求注入的对象与被注入的对象都需要在ioc容器中存在。

 

<bean id="userDao" class="com.bjsxt.dao.UserDaoImpl"></bean>

 

<bean id="userServie" class="com.bjsxt.service.UserServiceImpl">

<property name="userDao">

<ref bean="userDao"/>

</property>

</bean>

 

.Spring解析properties文件

1.通过在spring的配置文件中开启操作properties文件的工具类。

  <!-- 配置解析properties工具类 -->

  <bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">

  <property name="location">

  <value>/config.properties</value>

  </property>

  </bean>

 

2.以后我们会使用命名空间来开启这个工具类

以后再讲。。。。。

 

 

  • 大小: 7.1 KB
分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    Spring5 框架 ---- Spring5的新功能 ---- 代码

    Spring5 框架 ---- Spring5的新功能 ---- 代码 Spring5 框架 ---- Spring5的新功能 ---- 代码 Spring5 框架 ---- Spring5的新功能 ---- 代码 Spring5 框架 ---- Spring5的新功能 ---- 代码 Spring5 框架 ---- Spring...

    开发工具 框架JAR spring-framework-4.3.6.RELEASE-dist

    开发工具 框架JAR spring-framework-4.3.6.RELEASE-dist开发工具 框架JAR spring-framework-4.3.6.RELEASE-dist开发工具 框架JAR spring-framework-4.3.6.RELEASE-dist开发工具 框架JAR spring-framework-4.3.6....

    开发工具 框架JAR mybatis-spring-1.3.1

    开发工具 框架JAR mybatis-spring-1.3.1开发工具 框架JAR mybatis-spring-1.3.1开发工具 框架JAR mybatis-spring-1.3.1开发工具 框架JAR mybatis-spring-1.3.1开发工具 框架JAR mybatis-spring-1.3.1开发工具 框架...

    Spring5 框架 ---- AOP ---- 代码

    Spring5 框架 ---- AOP ---- 代码 Spring5 框架 ---- AOP ---- 代码 Spring5 框架 ---- AOP ---- 代码 Spring5 框架 ---- AOP ---- 代码 Spring5 框架 ---- AOP ---- 代码 Spring5 框架 ---- AOP ---- 代码 Spring5 ...

    Spring5 框架 ---- 事务操作 ---- 代码

    Spring5 框架 ---- 事务操作 ---- 代码 Spring5 框架 ---- 事务操作 ---- 代码 Spring5 框架 ---- 事务操作 ---- 代码 Spring5 框架 ---- 事务操作 ---- 代码 Spring5 框架 ---- 事务操作 ---- 代码 Spring5 框架 --...

    Spring5 框架 ---- IOC容器 ---- 代码

    Spring5 框架 ---- IOC容器 ---- 代码 Spring5 框架 ---- IOC容器 ---- 代码 Spring5 框架 ---- IOC容器 ---- 代码 Spring5 框架 ---- IOC容器 ---- 代码 Spring5 框架 ---- IOC容器 ---- 代码 Spring5 框架 ---- ...

    JavaEE主流开源框架-Spring部分rmvb格式.zip

    JavaEE主流开源框架-Spring部分rmvb格式。 JavaEE主流开源框架-Spring部分rmvb格式。 JavaEE主流开源框架-Spring部分rmvb格式。 JavaEE主流开源框架-Spring部分rmvb格式。 JavaEE主流开源框架-Spring部分rmvb格式。 ...

    Spring框架(spring-framework-5.2.6.RELEASE)的jar包

    Spring框架是中国最流行的Java应用开发框架之一,以其模块化、松耦合的特性深受开发者喜爱。5.2.6.RELEASE是Spring框架的一个稳定版本,它包含了一系列的jar包,这些jar包是构建和运行基于Spring的应用程序所必需的...

    spring-cglib-repack-3.2.0.jar和spring-objenesis-repack-2.1.jar

    在Java开发中,Spring框架是不可或缺的一部分,它提供了一种模块化、可扩展的方式来构建应用程序。在使用Spring框架时,有时会遇到导入源码或运行项目时出现类找不到的错误,这通常是因为缺少了必要的依赖库。在这个...

    网上书城项目(采用框架Spring-SpringMVC-MyBatis).zip

    这是一个网上书城项目,采用当前最流行的框架Spring-SpringMVC-MyBatis设计,主要是对之前用Jsp/Servlet做的一些优化,重构了整个系统,感觉还不错,学到了很多新的知识,能对SSM框架熟练的运用了。 这是一个网上...

    01-spring简介-框架的概念

    01-spring简介-框架的概念Spring框架是 Java 平台的一个开源的全栈(Full-stack)应用程序框架和控制反转容器实现,一般被直接称为 Spring。该框架的一些核心功能理论上可用于任何 Java 应用,但 Spring 还为基于...

    spring-cglib-repack-3.2.5.jar,spring-objenesis-repack-2.6.ja及ck-2.5.1.jar

    在Java开发领域,Spring框架是不可或缺的一个部分,它极大地简化了企业级应用的开发工作。在深入学习和分析Spring源码时,有时我们需要一个完整的运行环境来理解其内部机制。"spring-cglib-repack-3.2.5.jar"、...

    spring-cglib-repack-3.2.4.jar和spring-objenesis-repack-2.5.1.jar

    在Java开发领域,Spring框架是应用最广泛的轻量级框架之一,它提供了全面的基础设施支持,使得开发者可以更轻松地创建企业级应用。在深入理解`spring-cglib-repack-3.2.4.jar`和`spring-objenesis-repack-2.5.1.jar`...

    Java-Spring+Struts+Hibernate-SSH框架整合01-Spring+Hibernate

    Java-Spring+Struts+Hibernate-SSH框架整合01-Spring+Hibernate(一步一步的教你敲代码)(博客园,博客名称:Java-Spring+Struts+Hibernate-SSH框架整合01-Spring+Hibernate)

    spring-5.3.9-dist.zip(spring-framework-5.3.9)

    Spring框架是Java开发中不可或缺的一部分,它为构建高效、可测试和可维护的应用程序提供了全面的基础设施。在本文中,我们将深入探讨Spring框架的5.3.9版本,包括其核心特性、文档、库和XML架构。 首先,Spring ...

    搭建SSH框架需要引入的Struts2包(log4j,spring-web,struts2-spring-plugin)

    接下来,Spring框架的核心组件之一是`spring-web-5.0.6.RELEASE.jar`,它是Spring MVC的实现,提供了处理HTTP请求的能力。Spring Web模块包含了Servlet监听器、过滤器、DispatcherServlet等核心组件,它们协同工作以...

    spring-cglib-repack-3.2.6.jar和spring-objenesis-repack-2.6.jar

    Spring框架是Java开发中广泛应用的一个开源框架,它极大地简化了企业级应用的开发工作。在提供的文件中,我们看到了两个与Spring相关的库:`spring-cglib-repack-3.2.6.jar` 和 `spring-objenesis-repack-2.6.jar`。...

    spring-web-5.2.3.RELEASE和spring-webmvc-5.2.3.RELEASE

    Spring框架是Java开发中最常用的开源框架之一,它极大地简化了企业级应用的开发工作。Spring Web模块和Spring Web MVC模块是Spring框架中的两个关键组成部分,它们在构建Web应用程序时起着至关重要的作用。 Spring ...

    spring-cglib-repack-3.2.5.jar,spring-objenesis-repack-2.6.jar

    在Java开发领域,Spring框架是不可或缺的重要组成部分,它为开发者提供了强大的依赖注入、AOP(面向切面编程)以及各种企业级服务。标题中的"spring-cglib-repack-3.2.5.jar"和"spring-objenesis-repack-2.6.jar"是...

    mybatis-spring-1.3.3.jar官方下载

    MyBatis-Spring 是一个将 MyBatis ORM 框架与 Spring 框架集成的库,使得在 Spring 应用中使用 MyBatis 变得更加方便。mybatis-spring-1.3.3.jar 文件是这个集成库的一个版本,提供了对 MyBatis 1.3.3 和 Spring 的...

Global site tag (gtag.js) - Google Analytics