前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >spring学习笔记

spring学习笔记

作者头像
拾点阳光
发布2018-12-11 16:53:06
3240
发布2018-12-11 16:53:06
举报
文章被收录于专栏:码云1024

摘要:主要记录了在学习spring中记录的笔记

spring概念

spring是一个开源的轻量级框架

(轻量级是指这个框架不依赖于其他很多的东西,可以直接使用)

核心特征:

  1. IOC 控制反转
    • 比如说现在有一个类,类里面有一个方法,假如调用类里面的一个方法,需要创建类的对象,需要new出来对象
    • 对象的创建不是通过new方式实现,而是交给spring配置创建类对象
  2. AOP 面向切面编程 扩展一个功能不是修改源代码实现

spring是一站式框架

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

  • web层:springMVC
  • service层:spring的IoC
  • dao层:spring的jdbcTemplate

spring版本

spring 4.x

spring IoC操作

  1. 把对象的创建教给spring进行管理
  2. IoC操作两部分
    1. IoC配置文件方式
    2. IoC注解的方式

IoC底层原理

  • xml配置文件
  • dom4j解决xml
  • 工厂设计模式
  • 反射

原始方式

代码语言:javascript
复制
public class User{
    public void add(){
        //doSomething..
    }
}
代码语言:javascript
复制
//在servlet调用类里面的方法
User user=new User();
User.add();

以上代码中,假如类名发生更改,或者方法名发生更改。缺陷在于耦合度太高了。

使用工厂模式解耦和的操作

代码语言:javascript
复制
public class UserService{
    public void add(){
    
    }
}

public class UserServlet{

    public void addUser(){

        UserService s=Factory.getService();
        s.add();

    }

    
    
}

//解决方案,创建工厂类

public class Factory{
    //提供返回UserService对象的方法
    public static UserService getService(){

        return new UserService();

    }
}

在以上的解决方案中 servlet和工厂类耦合。开发中的一种思想是高内聚,低耦合。

IoC的实现方式

代码语言:javascript
复制
public class UserService{
    
}

public class UserServlet{
    //得到UserService的对象的原始方式:new创建

    UserFactory.getService();
    
}

第一步:创建xml配置文件,配置要创建的对象类

代码语言:javascript
复制
<bean id="userService" class="com.zhangjinbang.UserService">

第二步:创建一个工厂类,使用dom4j解析配置文件+反射

代码语言:javascript
复制
public class UserFactory{
    //返回UserService对象的方法
    public static UserService getService(){
        //使用dom4j解析xml文件
        //根据id值userService,得到id对应的class属性值
        String classValue=...
        //使用反射创建类对象
        Class clazz=Class.forName(classValue);
        //创建类对象
        UserService service=class.newInstance();
        return service;
    }
}

以上,当类的路径发生变化的时候,只需要修改配置文件就可以了,其他的文件都可以不用改变。

IoC入门案例

步骤:

  1. 导入jar包
  2. 创建类,在类里面创建方法
  3. 创建spring配置文件,配置创建类
  4. 写代码测试对象创建

jar包的特点,每个功能有三个jar包,基础jar包,文档jar包,源代码jar包

环境准备

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

  • spring-beans
  • spring-context
  • spring-core
  • spring-expression

导入支持日志输出的jar包

  • commons-logging
  • log4j

maven pom.xml文件

代码语言:javascript
复制
<project xmlns="http://maven.apache.org/POM/4.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.zhangjinbang</groupId>
    <artifactId>springdemo</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>jar</packaging>

    <name>springdemo</name>
    <url>http://maven.apache.org</url>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>

    <dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>3.8.1</version>
            <scope>test</scope>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.springframework/spring-context -->
        <!--spring-context依赖上面所提到的其他spring的beans、core、expression jar包,所以这里只需要写着一个就够了-->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>4.3.10.RELEASE</version>
        </dependency>
    </dependencies>
</project>

创建一个类

代码语言:javascript
复制
package com.zhangjinbang.ioc

public class User{
    public void add(){
        System.out.println("add ...");
    }

    public static void main(String[] args){
        //原始的做法
        User user = new User();
        User.add();
    }
}

创建spring配置文件

【注意】spring核心配置文件名称和位置不是固定的,建议放到src下面,官方建议applicationContext.xml

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018-11-10 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • spring概念
    • spring是一个开源的轻量级框架
      • 核心特征:
        • spring是一站式框架
          • spring版本
          • spring IoC操作
          • IoC底层原理
            • 原始方式
              • 使用工厂模式解耦和的操作
                • IoC的实现方式
                • IoC入门案例
                  • 环境准备
                    • 创建一个类
                      • 创建spring配置文件
                      领券
                      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档