发布于2020-11-19 20:28 阅读(738) 评论(0) 点赞(25) 收藏(2)
Spring:春天
Spring是一套软件框架
软件框架:软件的半成品!按照框架约定的规则,可以快速实现软件。
学习内容:
1.Spring Framework 核心功能 Bean组件管理
2.Spring MVC Web编程框架
3.mybatis持久层框架
4.springboot 减少spring的配置
5.springCloud(家族)实现了分布式编程(一群服务器)
6.互联网组件:Kafka Elasticsearch Redis
7.<稻草问答>项目
核心功能提供了Bean组件管理。
物品来源:
1.自己Diy
2.从工厂/商店购买
3.其他人给的
软件中对象的来源:
1.new运算创建对象:创建简单对象
2.从工厂方法获得对象:创建复杂对象
3.通过参数注入对象(真香)创建复杂对象
Spring提供的Bean组件管理可以实现IOC/DI功能,也就是在软件需要对象时候将对象注入给需要使用者。
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!
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对象,也就是任何时候获得的Bean对象都是同一个实例!
默认时候Spring中的Bean是单例的!
如何测试:
1.多次调用getBean方法
2.如果每次调用getBean获得的对象都是同一个对象,则说明是单例的。
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黑洞网
任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任
昵称:
评论内容:(最多支持255个字符)
---无人问津也好,技不如人也罢,你都要试着安静下来,去做自己该做的事,而不是让内心的烦躁、焦虑,坏掉你本来就不多的热情和定力
Copyright © 2018-2021 java黑洞网 All Rights Reserved 版权所有,并保留所有权利。京ICP备18063182号-2
投诉与举报,广告合作请联系vgs_info@163.com或QQ3083709327
免责声明:网站文章均由用户上传,仅供读者学习交流使用,禁止用做商业用途。若文章涉及色情,反动,侵权等违法信息,请向我们举报,一经核实我们会立即删除!