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

视频点播网站开发教程seo服务器选择

视频点播网站开发教程,seo服务器选择,熊猫网站ppt,网站建设全包设计目录 SpringBoot原理 起步依赖 自动配置 配置优先级 Bean设置 获取Bean 第三方Bean SpringBoot原理 内容偏向于底层的原理分析 基于Spring框架进行项目的开发有两个不足的地方#xff1a; 在pom.xml中依赖配置比较繁琐#xff0c;在项目开发时#xff0c;需要自己去找…目录 SpringBoot原理 起步依赖 自动配置 配置优先级 Bean设置 获取Bean 第三方Bean  SpringBoot原理 内容偏向于底层的原理分析 基于Spring框架进行项目的开发有两个不足的地方 在pom.xml中依赖配置比较繁琐在项目开发时需要自己去找到对应的依赖还需要找到依赖它所配套的依赖以及对应版本否则就会出现版本冲突问题。 在使用Spring框架进行项目开发时需要在Spring的配置文件中做大量的配置这就造成Spring框架入门难度较大学习成本较高。 SpringBoot 框架底层提供了两个非常重要的功能一个是起步依赖一个是自动配置。 通过SpringBoot所提供的起步依赖就可以大大的简化pom文件当中依赖的配置从而解决了Spring框架当中依赖配置繁琐的问题。 通过自动配置的功能就可以大大的简化框架在使用时bean的声明以及bean的配置。我们只需要引入程序开发时所需要的起步依赖项目开发时所用到常见的配置都已经有了我们直接使用就可以了。 起步依赖 起步依赖的原理就是Maven的依赖传递。 如果使用了SpringBoot就不需要繁琐的引入依赖了。只需要引入一个依赖就可以了那就是web开发的起步依赖springboot-starter-web。 问题为什么只需要引入一个web开发的起步依赖web开发所需要的所有的依赖都有了呢 答案因为Maven的依赖传递 在SpringBoot提供的这些起步依赖当中已提供了当前程序开发所需要的所有的常见依赖(官网地址https://docs.spring.io/spring-boot/docs/2.7.7/reference/htmlsingle/#using.build-systems.starters)。 比如springboot-starter-web这是web开发的起步依赖在web开发的起步依赖当中就 集成了web开发中常见的依赖json、web、webmvc、tomcat等。只需要引入这一个起步依赖其他的依赖都会自动的通过Maven的依赖传递进来。 自动配置 SpringBoot的自动配置就是当Spring容器启动后一些配置类、bean对象就自动存入到了IOC容器中 不需要我们手动去声明从而简化了开发省去了繁琐的配置操作。 比如我们要进行事务管理、要进行AOP程序的开发此时就不需要我们再去手动的声明这些bean对象了我们直接使用就可以从而大大的简化程序的开发省去了繁琐的配置操作。 在CommonConfig配置类上添加了一个注解Configuration而Configuration底层就是Component所以配置类CommonConfig最终也是SpringIOC容器当中的一个bean对象 问题在当前项目中我们并没有声明谷歌提供的Gson这么一个bean对象然后我们却可以通过Autowired从Spring容器中注入bean对象那么这个bean对象怎么来的 答案SpringBoot项目在启动时通过自动配置完成了bean对象的创建。 问题当前包com.itheima 第三方依赖中提供的包com.example此时引入进来的第三方依赖当中的bean以及配置类为什么没有生效 答案在类上添加Component注解来声明bean对象时还需要保证Component注解能被Spring的组件扫描到。 SpringBoot项目中的SpringBootApplication注解具有包扫描的作用但是它只会扫描启动类所在的当前包以及子包。 当前包com.itheima 第三方依赖中提供的包com.example扫描不到 解决方案1ComponentScan 组件扫描指定要扫描的包方案2Import 导入使用Import导入的类会被Spring加载到IOC容器中 方案一 SpringBootApplication ComponentScan({com.itheima,com.example}) //指定要扫描的包 public class SpringbootWebConfig2Application { public static void main(String[] args) { SpringApplication.run(SpringbootWebConfig2Application.class, args); } } 进行项目开发时当需要引入大量的第三方的依赖就需要在启动类上配置N多要扫描的包这种方式会很繁琐。而且这种大面积的扫描性能也比较低。 缺点 1. 使用繁琐 2. 性能低 不推荐使用 方案二 Import 导入 导入形式主要有以下几种 1. 导入普通类 2. 导入配置类 3. 导入ImportSelector接口实现类 1.导入普通类  Import(TokenParser.class) //导入的类会被Spring加载到IOC容器中 SpringBootApplication public class SpringbootWebConfig2Application { public static void main(String[] args) { SpringApplication.run(SpringbootWebConfig2Application.class, args); } } 2.导入配置类 Configuration public class HeaderConfig {//配置类 Bean public HeaderParser headerParser(){ return new HeaderParser(); } Bean public HeaderGenerator headerGenerator(){ return new HeaderGenerator(); } } Import(HeaderConfig.class) //导入配置类 SpringBootApplication public class SpringbootWebConfig2Application { public static void main(String[] args) { SpringApplication.run(SpringbootWebConfig2Application.class, args); } } 3.接口实现类 public class MyImportSelector implements ImportSelector {//接口实现类 public String[] selectImports(AnnotationMetadata importingClassMetadata) { //返回值字符串数组数组中封装了全限定名称的类 return new String[]{com.example.HeaderConfig}; } } Import(MyImportSelector.class) //导入ImportSelector接口实现类 SpringBootApplication public class SpringbootWebConfig2Application { public static void main(String[] args) { SpringApplication.run(SpringbootWebConfig2Application.class, args); } } 问题如果基于以上方式完成自动配置当要引入一个第三方依赖时是不是还要知道第三方依赖中有哪些配置类和哪些Bean对象 答案是的。 对程序员来讲很不友好而且比较繁琐 问题当我们要使用第三方依赖依赖中到底有哪些bean和配置类谁最清楚 答案第三方依赖自身最清楚。 结论我们不用自己指定要导入哪些bean对象和配置类了让第三方依赖它自己来指定。  问题怎么让第三方依赖自己指定bean对象和配置类 答案比较常见的方案就是第三方依赖提供一个注解这个注解一般都以EnableXxxx开头的注解注解中封装的就是Import注解 4.使用第三方依赖提供的 EnableXxxxx注解SpringBoot当中所采用的方式 第三方依赖中提供的注解 Retention(RetentionPolicy.RUNTIME) Target(ElementType.TYPE) Import(MyImportSelector.class)//指定要导入哪些bean对象或配置类 public interface EnableHeaderConfig { } 在使用时只需在启动类上加上 EnableXxxxx 注解即可 EnableHeaderConfig //使用第三方依赖提供的Enable开头的注解 SpringBootApplication public class SpringbootWebConfig2Application { public static void main(String[] args) { SpringApplication.run(SpringbootWebConfig2Application.class, args); } } 配置优先级 SpringBoot 项目当中支持的三类配置文件 application.properties application.yml application.yaml 配置文件优先级排名从高到低 1. properties配置文件 2. yml配置文件 3. yaml配置文件 在SpringBoot项目当中除了以上3种配置文件外SpringBoot为了增强程序的扩展性除了支持配置文件的配置方式以外还支持另外两种常见的配置方式 1. Java系统属性配置 格式 -Dkeyvalue -Dserver.port9000 2. 命令行参数 格式--keyvalue --server.port10010 优先级 命令行参数 系统属性参数 properties参数 yml参数 yaml参数 项目打包 点击右侧Maven中的package进行打包 显示打包完成 找到jar包的文件目录 在当前目录下输入cmd回车即可在当前目录下打开命令行 通过指令 java -Dserver.port9000 -jar tlias-0.0.1-SNAPSHOT.jar java -jar tlias-0.0.1-SNAPSHOT.jar --server.port9000java -Dserver.port9000 -jar tlias-0.0.1-SNAPSHOT.jar --server.port10010 以上三种方式可更改端口号第三种端口号改为10010因为命令行参数优先级高于java系统属性 通过ctrl c可结束操作 优先级顺序从高到低 命令行参数--xxxxxx java系统属性-Dxxxxxx application.properties application.yml application.yaml忽略 Bean设置 通过Spring当中提供的注解Component以及它的三个衍生注解Controller、Service、Repository来声明IOC容器中的bean对象为应用程序注入运行时所需要依赖的bean对象也就是依赖注入DI。 获取Bean 默认情况下SpringBoot项目在启动的时候会自动的创建IOC容器(也称为Spring容器)并且在启动的过 程当中会自动的将bean对象都创建好存放在IOC容器当中。应用程序在运行时需要依赖什么bean对 象就直接进行依赖注入就可以了。 在Spring容器中提供了一些方法可以主动从IOC容器中获取到bean对象下面介绍3种常用方式 1. 根据name获取bean Object getBean(String name) 2. 根据类型获取bean T T getBean(ClassT requiredType) 3. 根据name获取bean带类型转换 T T getBean(String name, ClassT requiredType) SpringBootTest class SpringbootWebConfig2ApplicationTests { Autowired private ApplicationContext applicationContext; //IOC容器对象 //获取bean对象 Test public void testGetBean(){ //根据bean的名称获取 DeptController bean1 (DeptController) applicationContext.getBean(deptController); System.out.println(bean1); //根据bean的类型获取 DeptController bean2 applicationContext.getBean(DeptController.class); System.out.println(bean2); //根据bean的名称 及 类型获取 DeptController bean3 applicationContext.getBean(deptController, DeptController.class); System.out.println(bean3); } } 默认bean对象是单例模式(只有一个实例对象)。那么如何设置bean对象为非单例呢需要设置bean的作用域。 作用域说明singleton 容器内同名称的 bean 只有一个实例单例默认 prototype 每次使用该 bean 时会创建新的实例非单例 request 每个请求范围内会创建新的实例 web 环境中了解 session 每个会话范围内会创建新的实例 web 环境中了解 application 每个应用范围内会创建新的实例 web 环境中了解 借助Spring中的Scope注解来配置Bean的作用域 测试一 默认bean的作用域为singleton (单例) Lazy //延迟加载第一次使用bean对象时才会创建bean对象并交给ioc容器管理 RestController RequestMapping(/depts) public class DeptController { Autowired private DeptService deptService; public DeptController(){ System.out.println(DeptController constructor ....); } //省略其他代码... } 测试二 Scope(prototype) //bean作用域为非单例 Lazy //延迟加载 RestController RequestMapping(/depts) public class DeptController { Autowired private DeptService deptService; public DeptController(){ System.out.println(DeptController constructor ....); } //省略其他代码... } 第三方Bean  要从IOC容器当中来获取到bean对象需要先拿到IOC容器对象怎么样才能拿到IOC容器呢 想获取到IOC容器直接将IOC容器对象注入进来就可以了 在配置类中定义Bean标识的方法 如果需要定义第三方Bean时 通常会单独定义一个配置类 Configuration //配置类 (在配置类当中对第三方bean进行集中的配置管理) public class CommonConfig { //声明第三方bean Bean //将当前方法的返回值对象交给IOC容器管理, 成为IOC容器bean //通过Bean注解的name/value属性指定bean名称, 如果未指定, 默认是方法名 public SAXReader reader(DeptService deptService){ System.out.println(deptService); return new SAXReader(); } } 如果是在项目当中我们自己定义的类想将这些类交给IOC容器管理我们直接使用Component 以及它的衍生注解来声明就可以。 如果这个类它不是我们自己定义的而是引入的第三方依赖当中提供的类而且我们还想将这个类 交给IOC容器管理。此时我们就需要在配置类中定义一个方法在方法上加上一个Bean注解通过这种方式来声明第三方的bean对象。 注解8--SpringBoot原理分析、注解-详解面试高频提问点-CSDN博客
http://www.hkea.cn/news/14493113/

相关文章:

  • 网站备案中的网站名称阳新网站建设
  • 哈尔滨建站模板中国做健身补剂的网站
  • 网站缓存设置怎么做百度联盟广告点击一次收益
  • 微网站 建设方案上海企业服务云下载
  • 多个域名绑定同一网站吗杭州人才网
  • 温州网站优化价格可以免费推广的网站
  • 免费企业网站模板下载石家庄网站建设平台
  • 平顶山住房和城乡建设局网站可视化编程软件
  • discuz 网站标题关键词优化排名易下拉排名
  • 互联网门户网站是什么长沙seo优化方案
  • 大兴网站建设推广wordpress 360字体
  • 广东 网站建设 公司排名做百度推广销售怎么样
  • 生成拼贴的网站杭州建站公司
  • 网站设计一级网页中国专业做鞋子的网站
  • 电子商务网站开发教程实力网站建设电话
  • html5网站建设 教程视频做网站没有活
  • h5响应式网站建设方案怎么写安徽网站建设推荐
  • 不会做网站能做网络销售吗wordpress login插件
  • 网站建设捌金手指下拉二八网站后台栏目发布
  • 做四级题目的网站电子项目外包平台
  • 六安公司做网站网站开发模式有哪些
  • 天博网站建设合肥网站建设久飞
  • 网站建设工作经历网店搬家
  • 淘宝的网站建设的目标网站建设的目的模板
  • 网站建设2000元大数据技术主要学什么
  • 郑州建站程序自己能否建立公司网站
  • 西安网站推广排名绵阳 网站开发
  • 河北邯郸做网站的公司官方网站建设 招标公告
  • 太原网站空间苏宁网站开发人员工资
  • 零基础1小时快速建站运涛网站建设