程序员最近都爱上了这个网站  程序员们快来瞅瞅吧!  it98k网:it98k.com

本站消息

站长简介/公众号

  出租广告位,需要合作请联系站长


+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

2023-06(3)

Spring框架

发布于2020-11-19 20:28     阅读(629)     评论(0)     点赞(25)     收藏(2)


Spring框架

Spring:春天

Spring是一套软件框架

软件框架:软件的半成品!按照框架约定的规则,可以快速实现软件。

学习内容:

1.Spring Framework 核心功能 Bean组件管理

2.Spring MVC Web编程框架

3.mybatis持久层框架

4.springboot 减少spring的配置

5.springCloud(家族)实现了分布式编程(一群服务器)

6.互联网组件:Kafka Elasticsearch Redis

7.<稻草问答>项目

Spring Framework

核心功能提供了Bean组件管理。

物品来源:

1.自己Diy

2.从工厂/商店购买

3.其他人给的

软件中对象的来源:

1.new运算创建对象:创建简单对象

2.从工厂方法获得对象:创建复杂对象

3.通过参数注入对象(真香)创建复杂对象

Spring提供的Bean组件管理可以实现IOC/DI功能,也就是在软件需要对象时候将对象注入给需要使用者。

Spring的HelloWorld

Spring在实际工作中负责管理复杂对象。第一个实验是管理简单对象!

利用Spring提供的功能,创建一个简单对象,输出HellWorld!

1.创建一个类,让Spring创建这个类型的对象

public class Demo{
    /* @Override 通知编译器,在编译时候按照重写的语法规则
     * 检查后续方法,是否符合重写的语法规则,如果不符合,就出现编译错误。
     */
    @Override
	public String toString(){
		return "Hello  World!";
	}
}

2.创建项目,利用Maven导入Spring框架

<properties>
        <!-- 设置 JDK 版本为 1.8 -->
        <maven.compiler.target>1.8</maven.compiler.target>
        <maven.compiler.source>1.8</maven.compiler.source>
        <!-- 设置编码为 UTF-8 -->
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <maven.compiler.encoding>UTF-8</maven.compiler.encoding>
</properties>

    <dependencies>
        <!-- Spring Context -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>5.2.2.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>javax.annotation</groupId>
            <artifactId>javax.annotation-api</artifactId>
            <version>1.3.2</version>
        </dependency>
        <!-- 单元测试-->
        <dependency>
    		<groupId>junit</groupId>
   			<artifactId>junit</artifactId>
    		<version>4.13</version>
		</dependency>
    </dependencies>

3.按照 Spring提供规则,创建一个配置类,在配置类中约定创建Demo对象

/**
 * @Author:
 * @Date: 2020/11/14 16:45
 * Config:配置类
 * 这个类上标注Spring提供的配置注解@Configuration
 * @Bean: 注解,用于告诉Spring调用方法创建对象
 */

@Configuration
public class Config {
    @Bean
    public Demo demo(){
        return new Demo();
    }
}

4.初始化Spring,将配置类提供给Spring。Spring启动并且创建Demo对象

public class Test {
    public static void main(String[] args) {
        //初始化Spring
        AnnotationConfigApplicationContext context=new AnnotationConfigApplicationContext(Config.class);
       //从Spring获取Demo对象
        Demo demo=context.getBean(Demo.class);
        System.out.println("demo = " + demo);//toString()
    }
}

5.如果能够从Spring获取Demo对象,就证明Spring可以创建并且管理Demo对象

输出结果:demo = Hello World!

什么是Java Bean

Bean:豆子\豆荚

比喻:Sun公司推荐的具有统一相似结构的java对象

Sun公司推荐的java类型定义规则,符合这个规则的java类型统一称为JavaBean

1.类型有包package

2.类有无参构造器(可以是默认构造器)

​ 2.1方便子类继承(派生子类)

3.类要实现序列化接口

4.使用getXxx setXxx访问属性,称为Bean属性xxx

JavaBean不是强制标准,Spring建议在Spring中使用Java Bean规则管理对象。

所以Spring被其管理的对象为Bean对象。获取对象的方法叫getBean()

简单理解Spring中:对象==Bean对象,

尽管Spring建议使用Java Bean规则,但是Spring仍然宽泛支持任何的Java类型。

有个典型的JavaBean

package cn.tedu.entity;

public User implements Serialzable{
	private int id;
	private String name;
	public User(){
	
	}
	public int getId(){
	  	return id;
	}
	public void setId(int id){
		this.id=id;
	}
    public String getName(){
        return name; 
    }
}

单例与单例模式

什么是单例:单个实例,在软件中无论如何操作,对象的实例始终唯一,就是单例的。

单例模式:是指一个语法结构(模式),按照这个结构编写的代码可以保证对象个体始终唯一。

无法修改更替。

package cn.tedu.day01;

/**
 * 饿汉式 单例设计模式
 */
public class Demo01 {
    public static void main(String[] args) {
        //girl 是只读的唯一实例,不可改写
        Girl g1 = Girl.getGirl();
    }
}
class Girl {//按照如下固定套路编写代码:模式!
    private static Girl girl = new Girl();
    private Girl() {
    }
    public static Girl getGirl() {
        return girl;
    }
}

Spring默认的Bean是单例的

默认情况下,Spring按照单例管理Bean对象,也就是任何时候获得的Bean对象都是同一个实例!

默认时候Spring中的Bean是单例的!

如何测试:

1.多次调用getBean方法

2.如果每次调用getBean获得的对象都是同一个对象,则说明是单例的。

Spring中使用@Scope(“prototype”)支持多个实例

Scope:范围 prototype:原型

在配置文件中使用@Scope(“prototype”)声明的Bean是多个实例的,也就是每次调用getBean方法获得的对象都是一个新的实例!

关于单例和多个实例

1.Spring默认规则最常用,可以管理唯一的一个Bean实例,节省资源,性能好,尽量使用单例。

2.如果对象需要多个实例时候,请使用@Scope(“prototype”)创建多个实例。

3.根据软件业务规则合理设置!

原文链接:https://blog.csdn.net/qq_43740651/article/details/109752396



所属网站分类: 技术文章 > 博客

作者:java之恋

链接:http://www.javaheidong.com/blog/article/969/297ccf2909bcb3e0d4d7/

来源:java黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

25 0
收藏该文
已收藏

评论内容:(最多支持255个字符)