当前位置: 首页 > news >正文

网站制作需求文档/百度助手app免费下载

网站制作需求文档,百度助手app免费下载,开发app多少钱费用,网站空间ip是一个域名工具下载 Spring Boot官方地址为https://spring.io/projects/spring-boot 下载JDK1.8,并进行环境变量配置(假如已有则无需再次下载和配置)。下载最新maven(例如apache-maven-3.6.3,网址http://maven.apache.org/)并解压。 下载sts最新版(例如sts-4.4.5.RELEASE,网址…
  • 工具下载

  • Spring Boot官方地址为https://spring.io/projects/spring-boot
  1. 下载JDK1.8,并进行环境变量配置(假如已有则无需再次下载和配置)。
  2. 下载最新maven(例如apache-maven-3.6.3,网址http://maven.apache.org/)并解压。
  3. 下载sts最新版(例如sts-4.4.5.RELEASE,网址https://spring.io/tools)并解压(新版本下载下来时一个.jar需要在jar文件所在的目录中,以命令行方式执行java -jar 下载的文件名的方式进行解压,如图所示(需要首先启动系统自带的命令行客户端,然后切换到软件所在目录,cd指令为切换目录的意思)

  • 工作区准备:定义新的工作区(要求没有中文目录),例如d:/TCGBIII/WORKSPACE。

建议:将下载的所有文件存储到同一目录并解压,例如d:/TCGBIII/TOOLS目录。要求目录不要有中文,也不要有特殊符号(例如&等)

1:打开maven中的setting.xml文件,并对其如下选项进行配置

1.1:配置maven本地库(从maven远程服务器下载的资源存储到的位置)

<localRepository>${user.home}/.m5/repository</localRepository>

1.2:配置maven私服(配置到mirrors标签内部)

   <mirror><id>aliyun</id><name>aliyun for maven</name><mirrorOf>*</mirrorOf><url>https://maven.aliyun.com/repository/public</url></mirror>

1.3:配置maven中的profile(配置到profiles标签内部),设置JDK编译和运行版本。

<profile><id>jdk-1.8</id><activation><activeByDefault>true</activeByDefault><jdk>1.8</jdk></activation><properties><maven.compiler.source>1.8</maven.compiler.source><maven.compiler.target>1.8</maven.compiler.target><maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion></properties>
</profile>

2:STS整合maven配置

2.1:启动STS工具(特殊的eclipse,添加了spring开发插件)如下图所示

2.2:Maven Installations配置

2.3:Maven User Settings配置

2.4:项目工作区编码设置

3:STS工具使用基本优化(可选)

3.1:禁用拼写检查,取消图-6所示的拼写检查选项

3.2:取消如图所示的连接选项配置

3.3:关掉校验功能

3.4:修改STS工具内存配置,打开SpringToolSuite4.ini文件,修改堆大小

4:Spring Boot 快速入门

4.1:项目创建及结构分析

打开STS 集成开发工具,创建spring boot项目,其具体步骤如下:

第一步:打开项目新建窗口(快捷键ctrl+n), 搜索spring,选择spring starter 项目

4.2:填写项目基本信息

4.3:选择Spring Boot版本

点击finish之后,项目便开始从maven配置中指定的私服服务器(例如阿里云的maven服务器)去下载起步依赖(SpringBoot项目中默认指定了项目启动时需要的一些jar包依赖),这个过程可能会比较耗时(网络最好不要用手机网络,会导致很多资源下载不下来),假如指定版本的springboot项目以前创建过,它会默认先从本地库查找,假如本地库没有,则从远程库去下载。

4.4:项目创建成功以后,其包视图(Package Explorer)结构,如下图所示

其中,在上图呈现的CGB-SBOOT-01项目结构中,所有的类和配置文件都是创建好项目以后,由STS工具帮我们自动创建的。(假如你是普通的maven项目,这些类还有配置文件需要我们自己手动创建)

5:项目启动过程分析

5.1:找到项目的入口类(使用了@SpringBootApplication注解描述),然后运行启动类,检测启动过程,SpringBoot在启动时,控制台会出现如下图标识:

5.2:项目启动时发生了什么呢?我在这里画了张图帮大家进行一下分析

SpringBoot 项目在启动时,首先基于启动入口类上的注解描述,进行自动配置并扫描指定包以及子包中的类进行加载,然后检测类上是否有Spring框架中指定的注解描述(例如@Component,@Controller,@Service等)。假如有,则将类交给Spring框架中的BeanFactory工厂接口的实现类对象,此工厂对象会基于反射创建Bean的实例,假如此Bean指定了生命周期方法,还会调用生命周期方法。当实例创建以后,Spring框架还会基于类的作用域描述,将实例存储到不同作用域的容器中。以实现Bean对象的科学应用。

5.3:项目业务初步实现及测试

业务实现:

基于SpringBoot脚手架(或者架子工),通过Spring框架进行Bean对象的管理实现。

第一步:创建一个DefaultCache类,存储到src/main/java目录,然后交给spring管理。

package com.cy.pj.common.cache;
@Componentpublic class DefaultCache {}

其中,@Component是Spring中用于描述Bean类的一个注解。用于告诉Spring这个类的实例由Spring创建,当此对象由Spring创建和管理时,默认会将对象存储到池(Bean池)中。

第二步:添加sringboot 测试类,进行bean的获取及测试,要放在src/test/java目录中:

package com.cy.pj.common.cache;
@SpringBootTest
public class DefaultCacheTests {// is a Object@Autowiredprivate DefaultCache defaultCache;//has a@Testpublic void testCache() {//use a systemSystem.out.println(defaultCache);}
}

其中:

  • @SpringBootTest 注解用于告诉spring框架,此测试类交给spring管理。
  • @Autowired注解描述属性时,用于告诉spring框架要为此属性注入一个值?(至于注入规则,后面课程慢慢加强)

第三步:代码设计及运行分析,如图所示:

在图中描述了DefaultCacheTests类与DefaultCache类的关系,这两个类通过指定注解(@SpringBootTest,@Component)进行了描述,其意图是告诉spring框架这个两个类的实例的创建由Spring负责,并且由Spring框架基于@Autowired注解的描述完成DefaultCacheTests实例中有关DefaultCache类型的值的注入(DI)。

第四步:为对象设计作用域,设置延迟加载,设置生命周期方法(了解)。

在Spring框架中,Spring为由它创建和管理的对象,设计了一些特性,例如作用域,延迟加载,生命周期方法等,基于这些特性实现对Bean对象的管理。

package com.cy.pj.common.pool;
@Component@Scope("singleton")
@Lazypublic class ObjectPool {public ObjectPool() {System.out.println("ObjectPool()");}@PostConstructpublic void init() {System.out.println("init()");}@PreDestroypublic void destory() {System.out.println("destory");}
}

其中:

  • @Lazy注解用于描述类,其目的是告诉spring框架此类支持延迟加载,通常会配合单例作用域使用。
  • @Scope 是Spring中用于定义Bean对象作用域的一个注解,其常用的值有

singleton(整个内存有一份Bean实例,此实例何时创建与类的延迟加载特性配置有关,此实例创建以后,生命周期会由spring框架管理),prototype(每次获取都会创建新实例,此实例会在需要时创建与lazy特性无关,这个实例创建以后,不会交给spring管理,spring可以对其初始化,但不负责销毁。)等。

  • @PostConstruct 注解用于描述bean对象生命周期方法中的初始化方法,此方法会在对象的构造方法之后执行(是对象创建以后的初始化)
  • @PreDestroy 注解用于描述Bean对象生命周期方法中的销毁方法,此方法会在对象销毁之前执行(当作用域为prototype时,此方法不会执行)

 

第五步:通过测试类测试作用域,延迟加载,生命周期方法。

package com.cy.pj.common.cache;
@SpringBootTest
public class ObjectPoolTests {@Autowiredprivate ObjectPool objectPool;@Testpublic void testObjectPool() {//???}
}

5.4:对象管理原理

Spring 是一个资源整合框架(Framework),通过spring可将很多资源(自己写的对象或第三方提供的对象,例如连接池等)整合在一起,然后进行科学应用,以便更好的对外提供服务。如图所示

在上图7中,Spring框架可以为由它管理的对象(Bean)提供懒加载策略(对象暂时用不到,则无需加载和实例化),作用域(例如singleton-频繁用时可以考虑内存中只有一份,prototype-使用次数少时可以用时创建,不用时销毁),生命周期方法(更好实现对象的初始化和资源销毁),以实现对象对系统资源的有效使用。同时Spring框架还可以基于用户设计管理对象与对象的依赖关系,以降低对象与对象之间的直接耦合,提高程序的可维护性和可扩展性。

5.5:项目业务增强实现及测试

假如一个接口的实现类的对象有多个,并且这些对象都交给了Spring管理,那么假如

另外一个类,现在依赖于这个接口,那么Spring如何为接口引入注入值?

第一步:定义业务Cache接口.

package com.cy.pj.common.cache;
public interface Cache {}

第二步:定义WeakCache实现Cache接口.

package com.cy.pj.common.cache;
import org.springframework.stereotype.Component;@Componentpublic class WeakCache implements Cache{}

第三步:创建或修改SoftCache,让此类也实现Cache接口,关键代码如下:

package com.cy.pj.common.cache;@Component
public class SoftCache implements Cache{
…
}

第四步:单元测试类

package com.cy.pj.common.cache;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.boot.test.context.SpringBootTest;
@SpringBootTestpublic class CacheTests {@Autowired@Qualifier("softCache")private Cache cache;@Testpublic void testCache() {System.out.println(cache);}
}

业务测试运行原理分析

  1. @Autowired注解应用规则?
  2. @Qualifier注解的作用是什么?

 

@Autowired由spring框架定义,用于描述类中属性或相关方法(例如构造方法)。Spring框架在项目运行时假如发现由他管理的Bean对象中有使用@Autowired注解描述的属性或方法,可以按照指定规则为属性赋值(DI)。其基本规则是:首先要检测容器中是否有与属性或方法参数类型相匹配的对象,假如有并且只有一个则直接注入。其次,假如检测到有多个,还会按照@Autowired描述的属性或方法参数名查找是否有名字匹配的对象,有则直接注入,没有则抛出异常。最后,假如我们有明确要求,必须要注入类型为指定类型,名字为指定名字的对象还可以使用@Qualifier注解对其属性或参数进行描述(此注解必须配合@Autowired注解使用)。具体过程可参考上图的设计进行自行尝试和实践

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

http://www.jmfq.cn/news/5286169.html

相关文章:

  • 网站建设推广语言/seo快速推广
  • 镇江企业网站排名优化/温州seo招聘
  • 提供手机网站制作/优化seo招聘
  • 企业宽带 做网站/办公软件培训
  • pc网站怎么建设流程/360手机优化大师安卓版
  • 做网站什么职业/百度收录要多久
  • 海珠区有没有专门做网站的地方/奶茶店营销软文
  • 网页设计企业网站素材库/怎么优化电脑系统
  • 自己做的网站如如统计访问量/semiconductor是什么意思
  • 温州网站关键词/搜索引擎优化seo名词解释
  • 网站建设费属于哪个会计科目/黑马培训
  • 产品网站系统/百度电话人工服务
  • 南宁网站建设报价/朝阳区seo技术
  • 网站源码 预览/微信附近人推广引流
  • 会展展厅设计/网站seo方案案例
  • 免费国外b2b网站/中国疫情最新数据
  • 湖北工程建设总承包有限公司网站/seo网站优化平台
  • 山西网站制作公司/自己个人怎样做电商
  • 商务网站建设/河南百度推广代理商
  • 社交网站 设计/seo推广什么意思
  • 武汉 网站建设公司哪家好/首页排名优化公司
  • 佛山网站建设公司哪个性比价好些/注册域名要钱吗
  • 漂亮的网页/百度蜘蛛池自动收录seo
  • 网站seo软件/公众号怎么引流推广
  • 彩票类网站怎么做推广/手机百度2022年新版本下载
  • 做网站网/免费打广告平台有哪些
  • 注册网站云空间/最好的小说网站排名
  • 什么免费推广网站好/2021年热门关键词
  • 网站空间 购买/网站维护收费标准
  • 网站选项卡图标/网络营销费用预算