• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
dielianhua
博客园    首页    新随笔    联系   管理    订阅  订阅

Spring4.x学习知识要点day01

Spring知识要点:

    <!-- Spring概念:1、Spring是开源的轻量级框架(所谓轻量级框架是看它启动时是否需要消耗太多资源,
        对于Spring容器,它提供了很多服务,但这些服务并不是默认为应用打开的,应用需要某种服务,还需要指明使用该服务,

       如果应用使用的服务很少,如:只使用了spring核心服务,那么我们可以认为此时应用属于轻量级的,如果应用使用了spring提供的
       大部分服务,这时应用就属于重量级。目前EJB容器就因为它默认为应用提供了EJB规范中所有的功能,所以它属于重量级。)
         2、Spring是一站式框架(所谓一站式框架是指可以通过该框架完成一个web项目的所有功能) -->
        <!-- 以启动程序所需的资源来决定。
        轻量级框架:侧重于减小开发的复杂度,相应处理能力减弱。但是其创建和销毁不需要消耗太多的资源,
        意味着可以在程序中经常创建和销毁session对象。例如spring。
        重量级框架:强调高可伸缩性。例如EJB在启动的时候,需要消耗大量的资源、内存和CPU等。
        你不能随意的创建和销毁它的实例,因为会占用很多的资源。 -->

    1 spring是开源的轻量级框架 

    2 spring核心主要两部分

      (1)aop:面向切面编程,扩展功能不是修改源代码实现

      (2)ioc:控制反转,

        - 比如有一个类,在类里面有方法(不是静态的方法),调用类里面的方法,创建类的对象,使用对象调用方法,创建类对象的过程,需要new出来对象

        - 把对象的创建不是通过new方式实现,而是交给spring配置创建类对象

    3 spring是一站式框架

     (1)spring在javaee三层结构中,每一层都提供不同的解决技术

        - web层:springMVC

       - service层:spring的ioc

       - dao层:spring的jdbcTemplate
      Spring ioc 操作

    1 把对象的创建交给spring进行管理

    2 ioc操作两部分:(1)ioc的配置文件方式    (2)ioc的注解方式

     IOC底层原理

   1  IOC底层原理技术:(1)xml配置文件 (2)dom4j解析xml  (3)工厂设计模式  (4)反射

     画图分析IOC底层原理

    

   IOC入门案例

      第一步 导入jar包

     (1)解压资料zip文件

       Jar特点:都有三个jar包

     

   

    (2)做spring最基本功能时候,导入四个核心的jar包就可以了

    (3)导入支持日志输出的jar包

        

       第二步 创建类,在类里面创建方法

第三步 创建spring配置文件,配置创建类

(1)spring核心配置文件名称和位置不是固定的

- 建议放到src下面,官方建议applicationContext.xml

(2)引入schema约束

(3)配置对象创建

第四步 写代码测试对象创建

(1)这段代码在测试中使用

Spring的Bean管理

<!-- bean实例化的三种方式
1、使用类的无参的构造创建(最常用)
2、使用静态工厂创建(比较麻烦)
(1)创建静态的方法,返回类对象
public class Bean2Factory {
public static void getBean2() {
return new Bean2();
}
3、使用实例工厂创建
(1)创建不是静态的方法,返回类对象
-->
<!-- Bean实例化的三种方式之一:使用类的无参构造创建 -->
  <!-- <bean id="user" class="com.cn.ioc.User"></bean> -->
  <!-- 方式二:使用静态工厂创建对象 -->
 <!--  <bean id="bean2" class="com.cn.bean.Bean2Factory" factory-method="getBean2"></bean>   -->
  <!-- 方式三:使用实例工厂创建对象 -->
  <!-- 创建工厂对象 -->
 <!--  <bean id="bean3Factory" class="com.cn.bean.Bean3Factory"></bean>
  <bean id="bean3" factory-bean="bean3Factory" factory-method="getBean3"></bean> -->

属性注入介绍

1 创建对象时候,向类里面属性里面设置值

2 属性注入的方式介绍(三种方式)

(1)使用set方法注入

(2)使用有参数构造注入

(3)使用接口注入

3 在spring框架里面,支持前两种方式

(1)set方法注入(重点)

(2)有参数构造注入

注入对象类型属性(重点)

1 创建service类和dao类

(1)在service得到dao对象

2 具体实现过程

(1)在service里面把dao作为类型属性

(2)生成dao类型属性的set方法

(3)配置文件中注入关系

 P名称空间注入

<!-- 引入spring schema约束条件 -->
 <!-- p名称空间注入 -->

注入复杂类型属性

1 数组

2 list集合

3 map集合

4 properties类型

 1 package com.cn.property;
 2 
 3 import java.util.List;
 4 import java.util.Map;
 5 import java.util.Properties;
 6 
 7 public class Person {
 8 //p名称空间注入
 9     private String pname;
10 
11     public void setPname(String pname) {
12         this.pname = pname;
13     }
14     public void test1() {
15         System.out.println("person....." + pname);
16         System.out.println("arr:" + arr);
17         System.out.println("list:" + list);
18         System.out.println("map:" + map);
19         System.out.println("properties:" + properties);
20     }
21 //注入复杂类型属性值
22     //数组
23     private String[] arr;
24     //list
25     private List<String> list;
26     //map
27     private Map<String,String> map;
28     //properties
29     private Properties properties;
30 
31     public void setArr(String[] arr) {
32         this.arr = arr;
33     }
34     public void setList(List<String> list) {
35         this.list = list;
36     }
37     public void setMap(Map<String, String> map) {
38         this.map = map;
39     }
40     public void setProperties(Properties properties) {
41         this.properties = properties;
42     }
43     
44 }

IOC与DI的区别

(1)IOC: 控制反转,把对象创建交给spring进行配置

(2)DI: 依赖注入,向类里面的属性中设置值

(3)关系:依赖注入不能单独存在,需要在ioc基础之上完成操作

Spring整合web项目原理

1 加载spring核心配置文件

(1)new对象,功能可以实现,效率很低

2 实现思想:把加载配置文件和创建对象过程,在服务器启动时候完成

3 实现原理

(1)ServletContext对象

(2)监听器

(3)具体使用:

- 在服务器启动时候,为每个项目创建一个ServletContext对象

- 在ServletContext对象创建时候,使用监听器可以具体到ServletContext对象在什么时候创建

- 使用监听器监听到ServletContext对象创建时候,

-- 加载spring配置文件,把配置文件配置对象创建

-- 把创建出来的对象放到ServletContext域对象里面(setAttribute方法)

- 获取对象时候,到ServletContext域得到 (getAttribute方法)

posted @ 2017-08-30 14:38  dielianhua  阅读(159)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3