spring框架---IOC

2023-11-17

spring框架的概述

spring是轻量级的开源的JavaEE框架

解决企业应用的开发复杂性

spring有两个核心 IOC AOP

​ IOC:控制反转,把创建对象的过程交给Spring进行管理

​ AOP:面向切面,不修改源代码的进行功能增强

Spring 先关特点:1.方便解耦 简化开发 2.Aop编程支持 3.方便程序的测试 4。方便集成各种框架

​ 5.方便进行事务的操作

​ 6. 降低Api的开发难度

IOC

1.什么是IOC:

(1)控制反转,把对象的创建和对象调用的过程交给spring的过程

(2)目的:为了耦合度降低

(3)入门案例 IOC实现

2.底层原理

(1)xml解析,工厂模式,反射

3、画图详解

请添加图片描述

​ 读取配置文件,通过反射去创建对象,本质上是一个对象工厂模式, 进一步降低耦合度

接口(BeanFactory)

IOC思想基于IOC容器完成,底层就像对象工厂

Spring提供IOC实现的两种方式,

(1)BeanFactory 是spring里面内部的使用接口,不提供开发人员使用

特点:加载配置文件时不会去创建里面的对象,只能在获取或者使用的时候才会去创建这个对象

(2) ApplicationContext BeanFactory接口的子接口,提供更多强大的功能,一般由开发人员使用

加载配置文件的时候,就会把你在配置文件的对象进行创建。

(3)ApplicationContext接口有实现类

ClassPathXmlApplicationContext src下的文件

FileSystemXmlApplicationContext 盘符下的内容

具体操作:操作Bean管理

1.什么是Bean管理:

两个操作(1)Spring床架对象(2)注入属性

2.Bean管理操作的两种方式实现

基于xml配置文件实现,

创建对象

<bean id="user" class="com.atguigu.spring.User"></bean>
在spring文件中使用bean标签,标签里面添加对应属性,便可以实现
在bean标签中的属性:
id属性:获取对象时的唯一标识
class属性:创建对象时类的全路径
name属性:作用和id一样  区别:id中不可以加特殊符号,早期属性给strut1提供
创建对象时,默认也是创建无参数构造方法

注入属性

(1)DI:依赖注入,就是注入属性

第一种使用set方法的注入

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-B3O9POmq-1626936633689)(C:\Users\86155\AppData\Roaming\Typora\typora-user-images\image-20210720205355136.png)]

先创建类,定义属性,然后给出set方法

在spring配置文件中配置对象创建,配置属性注入

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-eVH8QDb0-1626936633691)(C:\Users\86155\AppData\Roaming\Typora\typora-user-images\image-20210720205346147.png)]

第二种注入方式:使用有参数的构造进行注入

1.先创建类和属性,之后构建有参数构造器

2.在xml配置文件中配置bean

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-aeH2RaF4-1626936633693)(C:\Users\86155\AppData\Roaming\Typora\typora-user-images\image-20210720211042016.png)]

了解:p名称空间注入

简化xml配置

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-oSKCQKJy-1626936633694)(C:\Users\86155\AppData\Roaming\Typora\typora-user-images\image-20210720211809516.png)]

xml注入其他类型方式

1.字面量 (1)null值

(2)属性值包含特殊符号

例如value=“<<南京>>" 此时不能通过编译 解决

把<>进行转义&lt:&gt;

把带特殊符号内容写到CDATA

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-HMiCl0CT-1626936633695)(C:\Users\86155\AppData\Roaming\Typora\typora-user-images\image-20210720213140119.png)]

基于属性----外部bean

!创建两个类service类和dao类

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bfCG4ADh-1626936633696)(C:\Users\86155\AppData\Roaming\Typora\typora-user-images\image-20210721102059896.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bbRHFBbI-1626936633696)(C:\Users\86155\AppData\Roaming\Typora\typora-user-images\image-20210721102115813.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xje4J8Sj-1626936633697)(C:\Users\86155\AppData\Roaming\Typora\typora-user-images\image-20210721102125274.png)]

!在service层调用dao层

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nBTntHRN-1626936633697)(C:\Users\86155\AppData\Roaming\Typora\typora-user-images\image-20210721102144251.png)]

!在spring配置文件中去配置

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tVEjlCCa-1626936633698)(C:\Users\86155\AppData\Roaming\Typora\typora-user-images\image-20210721102158061.png)]

注入属性----内部bean和级联赋值

内部bean

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JqOg6SOV-1626936633698)(C:\Users\86155\AppData\Roaming\Typora\typora-user-images\image-20210721112617438.png)]

级联赋值

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kPn8RUq8-1626936633698)(C:\Users\86155\AppData\Roaming\Typora\typora-user-images\image-20210721153658137.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OqHEHTqZ-1626936633699)(C:\Users\86155\AppData\Roaming\Typora\typora-user-images\image-20210721154152923.png)]

Ioc操作Bean管理(xml注入集合属性)

1.注入数组类型属性

2.注入List集合类型属性

3.注入Map集合类型属性‘

<bean id="ept" class="com.atguigu.spring.Ept">
    <property name="age" value="jie"></property>
    <property name="name" value="zhang"></property>
    <property name="dev" ref="dev"></property>
    <property name="dev.ename" value="xuan"></property>
</bean>
    <bean id="dev" class="com.atguigu.spring.Dev">
    </bean>

    <bean id="shuzu" class="com.atguigu.spring.Shuzu">
        <property name="cource">
            <array>
                <value>计算机网络</value>
                <value>数据结构</value>
            </array>

        </property>
        <property name="list">
            <list>
                <value>asd</value>
                <value>qwe</value>
            </list>

        </property>
        <property name="map">
           <map>
               <entry key="Java" value="java"></entry>
               <entry key="C" value="c"></entry>
           </map>
        </property>
        <property name="set">
            <set>
                <value>sad</value>
                <value>sadffg</value>

            </set>
        </property>



    </bean>

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Nfq8wclc-1626936633699)(C:\Users\86155\AppData\Roaming\Typora\typora-user-images\image-20210721184730149.png)]

4.在集合中里面设置对象类型值

<!--创建多个 course 对象-->

<bean id= "course1" class= "com.atguigu.spring5.collectiontype.Course">

 <property name="cname" value= "Spring5 框架"></property>

</bean> 

<bean id="course2" class="com.atguigu.spring5.collectiontype.Course">

 <property name="cname" value="MyBatis 框架"></property>

</bean>

<property name="courseList">

 <list>

 <ref bean="course1"></ref>

 <ref bean="course2"></ref>

 </list>

</property> 

5.把集合注入部分提取出来

(1)在 spring 配置文件中引入名称空间 util

*<?*xml version="1.0" encoding="UTF-8"*?>*

<beans xmlns="http://www.springframework.org/schema/beans"

 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

 xmlns:p="http://www.springframework.org/schema/p"

 xmlns:util="http://www.springframework.org/schema/util"

 xsi:schemaLocation="http://www.springframework.org/schema/beans 

http://www.springframework.org/schema/beans/spring-beans.xsd

 http://www.springframework.org/schema/util 

http://www.springframework.org/schema/util/spring-util.xsd"> 

(2)使用 util 标签完成 list 集合注入提取

*<!--1 提取 list 集合类型属性注入-->* 

<**util****:list** **id=****"bookList"**>

<**value**>易筋经</**value**>

 <**value**>九阴真经</**value**>

 <**value**>九阳神功</**value**>

</**util****:list**>

*<!--2 提取 list 集合类型属性注入使用-->* 

<**bean** **id=****"book"** **class=****"com.atguigu.spring5.collectiontype.Book"**>

 <**property** **name=****"list"** **ref=****"bookList"**></**property**>

</**bean**>
FactoryBean

Spring有两种类型的bean,一种是普通bean,一种是工厂bean

普通bean:在配置文件中定义的类型就是你的返回类型

工厂bean:在配置文件中定义bean的类型可以使不一样的

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-buofQXtW-1626936633700)(C:\Users\86155\AppData\Roaming\Typora\typora-user-images\image-20210721192752825.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Zp4CGE3S-1626936633700)(C:\Users\86155\AppData\Roaming\Typora\typora-user-images\image-20210721192807730.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Tkz5Zz8e-1626936633700)(C:\Users\86155\AppData\Roaming\Typora\typora-user-images\image-20210721192800419.png)]

Bean的作用域

在sprin里面,设置bean实例,是单实例,还是多实例

默认情况下是单实例

如何设置是单实例还是多实例,属性scope可以设置

​ 第一个值,默认值:singleton,表示单实例对象

​ 第二个值, prototype ,表示多个实例对象

singleton和prototype区别

表示单实例和多实例的区别

设置 singleton的时候 ,加载spring配置文件时就会创建单实例对象

设置prototype值时,不是在加载spring配置文件时候创建对象,是在调用getBean方法时创建多实例对象

request

session

Bean的生命周期

1.生命周期

!从对象的创建到对象销毁的过程

2.bean生命周期

!通过构造器创建bean实例(无参数构造)

1为bean属性设置和对其他bean的引用(调用set方法)

​ !把bean实例传递bean后置处理器的方法

!调用bean初始化的方法(需要进行配置)

​ !把bean实例传递bean后置处理器的方法

!bean可以使用(对象获取到了)

!当容器关闭时,调用bean的销毁方法(需要进行配置销毁的方法)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WDQwJmqX-1626936633701)(C:\Users\86155\AppData\Roaming\Typora\typora-user-images\image-20210721230144953.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zuBa46PF-1626936633701)(C:\Users\86155\AppData\Roaming\Typora\typora-user-images\image-20210721230220866.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-TJMnBbPc-1626936633702)(C:\Users\86155\AppData\Roaming\Typora\typora-user-images\image-20210721230233668.png)]

引入外部属性文件配置数据库连接池

(1)创建外部属性文件,properties 格式文件,写数据库信息

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-sV31oEiD-1626936633702)(C:\Users\86155\AppData\Roaming\Typora\typora-user-images\image-20210721233701922.png)]

(2)把外部 properties 属性文件引入到 spring 配置文件中

⚫ 在 spring 配置文件使用标签引入外部属性文件

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-udYEn4cl-1626936633702)(C:\Users\86155\AppData\Roaming\Typora\typora-user-images\image-20210721233815723.png)]

基于注解方式

什么是注解

!注解是代码的特殊标记,格式:@注解名称(属性名称=属性值,属性名称=属性值)

!使用注解,作用在类的上面,方法上面,属性上面

!目的:简化xml配置

2.spring针对Bean管理中创建对象提供注解()

(1)@Component

(2)@Service

(3)@Controller

(4)@Repository

*上面的功能一样,都可以用来创建bean实例

3.基于注解方式实现对象创建

第一步:引入aop的依赖

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9E8qYID2-1626936633703)(C:\Users\86155\AppData\Roaming\Typora\typora-user-images\image-20210722104944855.png)]

第二步:开启组件的扫描

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mRCdvNae-1626936633704)(C:\Users\86155\AppData\Roaming\Typora\typora-user-images\image-20210722105005976.png)]

第三步:创建类,在类上加入注解

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Z5PXvPio-1626936633704)(C:\Users\86155\AppData\Roaming\Typora\typora-user-images\image-20210722105027592.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zDvg6Sns-1626936633704)(C:\Users\86155\AppData\Roaming\Typora\typora-user-images\image-20210722105039877.png)]

4.其他组件配置

//表示关闭自动扫描,自定义要扫描Controller类型

<context:component-scan base-package=“com.atguigu.springmvc” use-default-filters=“false”>
<context:include-filter type=“annotation”
expression=“org.springframework.stereotype.Controller”/>
</context:component-scan>

//表示哪些内容不进行扫描

<context:component-scan base-package=“com.atguigu.springmvc”>
<context:exclude-filter type=“annotation”
expression=“org.springframework.stereotype.Controller”/>
</context:component-scan>

5.基于注解方式实现属性的注入(针对对象类型)

@AutoWired :根据属性类型进行自动装配

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xnqu1jIi-1626936633705)(C:\Users\86155\AppData\Roaming\Typora\typora-user-images\image-20210722112121571.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LFLvWY5y-1626936633705)(C:\Users\86155\AppData\Roaming\Typora\typora-user-images\image-20210722112135296.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8o1LIcZl-1626936633705)(C:\Users\86155\AppData\Roaming\Typora\typora-user-images\image-20210722112145580.png)]

@Qualifier:根据属性名称进行注入

要和Qualifier注解的使用,要和@Autowired一起使用

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WJ6k7U60-1626936633706)(C:\Users\86155\AppData\Roaming\Typora\typora-user-images\image-20210722142350344.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-M77OyeKR-1626936633706)(C:\Users\86155\AppData\Roaming\Typora\typora-user-images\image-20210722142403216.png)]

@Resource:可以根据类型注入,可根据名称注入

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kMx7Tu7k-1626936633707)(C:\Users\86155\AppData\Roaming\Typora\typora-user-images\image-20210722143511326.png)]

!@Value 根据普通类型

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Zqn5t9Yx-1626936633707)(C:\Users\86155\AppData\Roaming\Typora\typora-user-images\image-20210722143605355.png)]

6.完全注解开发

!创建配置类,替代xml配置文件

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pIiFr0Ig-1626936633707)(C:\Users\86155\AppData\Roaming\Typora\typora-user-images\image-20210722144919887.png)]

!编写测试类

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ypmSWtk4-1626936633708)(C:\Users\86155\AppData\Roaming\Typora\typora-user-images\image-20210722144908520.png)]

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

spring框架---IOC 的相关文章

  • @Autowire注释的问题(空)

    我在验证器类中自动连接的两个服务有问题 这些服务工作正常 因为在我的控制器中是自动连接的 我有一个 applicationContext xml 文件和 MyApp servlet xml 文件 我的基础包是 es unican meteo
  • Docker 和 Eureka 与 Spring Boot 无法注册客户端

    我有一个使用 Spring Boot Docker Compose Eureka 的非常简单的演示 我的服务器在端口 8671 上运行 具有以下应用程序属性 server port 8761 eureka instance prefer i
  • Spring表单ModelAttribute字段验证避免400 Bad Request错误

    我有一个ArticleFormModel包含正常发送的数据html form由 Spring 使用注入 ModelAttribute注释 即 RequestMapping value edit method RequestMethod PO
  • 以编程方式插入行(父行和子行)

    我正在使用 Spring 和 JDBCTemplate 该场景是 CUSTOMER 表和 ORDERS 表的父子关系 我想做一个插入 例如 1 个客户和 5 个订单 但我不确定如何以编程方式在 CUSTOMER 表中插入一行 如何获取 Or
  • 如何从引用的java项目访问静态资源(WEB-INF)文件夹中的文件?

    我有一个 Web 应用程序 其中包含一个作为 spring bean 公开的应用程序服务之一的配置 xml 文件 另外 我在同一工作区中有一个独立的 java 应用程序 它从其 pom xml 引用我的 Web 应用程序项目 它使用 Spr
  • 尝试使用JavaConfig在Spring中编写junit测试

    我正在尝试为我的示例项目编写一个 junit 测试 但不知道如何访问 jUnit 测试中的 ApplicationContext 这是该项目的主要类 public static void main String args in this s
  • IntelliJ IDEA 中多个 SVN 分支的工作流程

    我想使用 IntelliJ IDEA 在 SVN 主干和一个或几个功能分支之间轻松切换 最好能够同时在多个分支上工作 我有一些 本地 配置 例如用于集成测试的数据库设置和启用的调试日志记录 我想继续使用而不是提交到 SVN 各种选择的优缺点
  • 从 @JsonProperty 值获取枚举常量

    我有一个标有 JsonProperty 的枚举 用于使用 Jackson 进行 JSON 序列化 反序列化 并且希望获取给定字符串 JsonProperty 的枚举值 public enum TimeBucket JsonProperty
  • NoSuchBeanDefinitionException:没有合格的 bean 类型

    当调用我的 GET 请求 模式计算 时 我收到此错误 我不明白为什么 我的依赖项注入是正确的 org springframework beans factory NoSuchBeanDefinitionException No qualif
  • Java 8 lambda 和抽象类的接口扩展

    说我想宣布Spring的RowMapper 但不是创建动态类 而是实现一个实现 RowMapper 的抽象类 这是我的方法签名 SqlProcedure declareRowMapper RowMapper
  • IntelliJ IDEA 创建的 JAR 文件无法运行

    我在 IntelliJ 中编写了一个跨越几个类的程序 当我在 IDE 中测试它时它运行良好 但是 每当我按照教程将项目制作成 jar 可执行文件时 它就不会运行 双击 out 文件夹中的文件时 该文件不会运行 并显示 无法启动 Java J
  • Netbeans 8 不会重新加载静态 Thymeleaf 文件

    我通过 Maven 使用 Spring Boot 和 Thymeleaf 当我进行更改时 我似乎无法让 Netbeans 自动重新部署我的任何 Thymeleaf 模板文件 为了看到更改 我需要进行完整的清理 构建 运行 这需要太长的时间
  • 添加动态数量的监听器(Spring JMS)

    我需要添加多个侦听器 如中所述application properties文件 就像下面这样 InTopics Sample QUT4 Sample T05 Sample T01 Sample JT7 注意 这个数字可以多一些 也可以少一些
  • 如何在spring mvc中从控制器名称+操作名称获取映射的URL?

    是否有现有的解决方案可以从 Spring MVC3 中的 控制器名称 操作名称 获取映射的 URL 例如 asp net mvc 或 Rails 中的 UrlHelper 我觉得非常有用 thx 也许 你想要这样的东西 in your Co
  • 部署示例 Spring Web MVC 项目

    我是 Tomcat Maven 和 Spring Web MVC 准确地说是框架 v3 的新手 我试图建立example https anonsvn springframework org svn spring samples 项目mvc
  • 带有 @RequestBody 的 Spring 多部分文件

    我正在尝试将数据从应用程序上传到 Spring 后端服务 要上传的内容是一个 DataModel 其中包含要创建的对象的数据以及链接到该数据的多个图像 因此我使用这个方法签名 RequestMapping method RequestMet
  • Dispatcher-servlet 无法映射到 websocket 请求

    我正在开发一个以Spring为主要框架的Java web应用程序 特别使用Spring core Spring mvc Spring security Spring data Spring websocket 像这样在 Spring 上下文
  • Spring Autowire Bean具有多个接口实现,在方法中定义实现

    我是 Spring 和 Spring Boot 的新手 所以希望这不是一个愚蠢的问题 我有一个带有多个实现的接口 实现注释为 Component NameOfImpl 我的目标是使用选定的实现自动装配 bean 在正常情况下我可以这样做 A
  • 使用 Spring Boot 托管单页面应用程序

    因此 我尝试使用 spring 来托管一个单页应用程序以及一个普通的 REST API 这意味着所有正常的请求 api 端点应由相应的控制器处理 所有其他请求应定向到文件夹中的资源 static built 我已经通过捕捉所有内容来实现这个
  • Spring事务不回滚

    我有这样的事情 Service Transactional public class ServiceA Autowired SomeDAO1 dao1 Autowired ServiceB serviceB public void meth

随机推荐

  • JAVA多人聊天室(多线程基础聊天室可以私聊/群聊)

    创建一个类定义聊天的规则 package com test tcpmap 该程序定义了聊天的规则 public interface CrazyitProtocol 定义协议字符串的长度 int PROTOCOL LEN 2 下面是一些协议字
  • JWT的使用详解

    背景 公司处在前后端分离的转折阶段 作为后端人员 要找到一个适用于接口验证的方式 公司仍保持后端使用Laravel框架 而laravel框架默认的是 web 方式 web 方式是使用 session 来进行用户认证 当然也是可以使用 但是有
  • php 上传 excel xlsx_Vue自定义指令实现快速读取Excel

    前几天因为业务需求 所维护的而后台中出现了大量关于上传下载Excel的操作 因为我们的后台是基于Vue 并且是在 vue element admin 的基础上结合实际需求开发而来 vue element admin 中也有一些相关操作 Ex
  • Linux主线程与子线程关系

    问题背景 起因 笔者在开发一个统计Linux系统各个进程 线程loading的软件 精度高于top命令 目前是间隔500ms采样一次 在内核遍历所有线程时 发现如果有的线程在采样间隔中间退出的话 for each process不能遍历到该
  • 你了解Java的内部类吗

    系列文章 该文章为第一篇 前言 内部类顾名思义指的就是一个类声明在另一个类的内部 我们在平时读源码时或多或少见过内部类 但自己写的代码中可能基本不使用或很少使用他们 即使用了可能也不太清楚为什么要使用 只知道可以使用 文章开始之前先罗列一下
  • Numpy章节 3 高级功能

    章节 3 高级功能 1 数组的迭代和排序 NumPy提供了迭代数组元素的方法 并且可以对数组进行排序 示例代码 arr np array 3 1 5 2 4 迭代数组元素 for x in arr print x 输出 3 1 5 2 4
  • matlab运行一直正忙,MATLAB运行时一直处于忙的状态,是不是程序存在死循环

    本帖最后由 安然娜124 于 2016 4 26 21 37 编辑 疑惑 1 该程序点击运行后一直处于忙的状态 好久都没反应 不知道是程序中for语句太多导致的 还是语句存在死循环 2 如果程序可以运行 不管出没出结果 是不是都代表所编的程
  • 使用JavaScript调用常用浏览器,解决IE浏览器兼容性问题

    目录 前言 JavaScript代码 此贴为个人学习记录 便于以后使用 前言 开发中经常会遇到用户使用IE浏览器的情况 但是由于各种兼容问题 网页实际显示效果和开发的效果有较大出入 所以有了以下解决方案 如果当前网页用户使用IE浏览器打开
  • Pytorch中经常见到的View( )函数

    Pytorch里经常会见到tensor view a b c a b c等等都是函数内的参数 可以理解为reshape功能 重构张量的维度 比如 a torch Tensor 2 3 print a tensor 0 0000 0 0000
  • 3D星球动画html,基于Three.js实现的3D土星(星球)动画

    JavaScript 语言 JaveScriptBabelCoffeeScript 确定 function getMat color our material is a phong material with no shininess hi
  • 【c++primer第五版】第六章函数-函数基础、参数传递、返回类型、函数重载、函数指针

    目录 函数基础 局部对象 函数声明 参数传递 main 处理命令行选项 特殊用途语言特性 调试帮助 函数匹配 函数指针 函数是一个命名了的代码块 通过调用相应的函数来执行相应的代码 函数可以有0或多个参数 通常会产生一个结果 也可以重载函数
  • QT——C++ 多线程05

    目录标题 一 创建多线程的方式 一 方式一 二 方式二 三 方式三 一 创建多线程的方式 QT创建 使用 多线程的方式有三种 直接创建QThread 对象 重写run方法 最后调用start方法启动线程 通过调用QObject类提供的mov
  • k8s基础概念、ETCD

    原理 和k8s结合点 etcd与k8s的交集 维护 基础概念 物理组件 逻辑组件 网络组件 工作负载 1 物理组件 Master Control plane kube apiserver 提供唯一api接口 提供集群管理接口 用户认证授权
  • 【Qt】使用 setWindowFlags 方法设置窗体的最小化、最大化、关闭按钮

    一 设置方法 void setWindowFlags Qt WindowFlags type Qt WindowFlags 有很多参数 其中 窗口最小化按钮 Qt WindowMinimizeButtonHint 窗口最大化按钮 Qt Wi
  • html 识别文本中的\n 进行换行

    文本内容有 n 怎么换行 1 v html渲染 使用正则将 n 替换成 br 标签 再用v html渲染 this content value replace n g br div div 2 使用css的white space div t
  • 学好少儿编程做人工智能开拓者

    乔布斯曾经说过 人人都应该学习编程 因为它教会你如何思考 格物斯坦小坦克认为少儿编程教育已经不再是一个遥远的话题 它逐渐成为一个趋势 成为一个现实 少儿教育编程行业领域的火爆 也反映出了国家对于少儿编程教育的重视 以及行业对编程人才的刚性需
  • 虚拟化技术7小问

    目录 kvm中的虚拟机cpu核心大于1 虚拟机就不能启动 只能设置为1的时候虚拟机才能启动 是什么原因 如何查看虚拟机宿主机的CPU是否支持硬件虚拟化 宿主机支持虚拟化 是不是还要开启相关的设置 虚拟机中再安装的虚拟机是不是只能是单核的虚拟
  • 存储器基础入门

    1 泰瑞达机台 Magnum VU本身作为一个灵活 集合式的测试平台 可以支持所有NAND以及MCP MCP Multiple Chip Package 存储器 MCP是在一个塑料封装外壳内 垂直堆叠大小不同的各类存储器或非存储器芯片 是一
  • Android TabLayout setupWithViewPager()方法绑定Viewpager不显示文字

    setupWithViewPager 做了什么事情 TabLayout tabLayout findViewById R id tabLayout ViewPager viewPager findViewById R id viewPage
  • spring框架---IOC

    spring框架的概述 spring是轻量级的开源的JavaEE框架 解决企业应用的开发复杂性 spring有两个核心 IOC AOP IOC 控制反转 把创建对象的过程交给Spring进行管理 AOP 面向切面 不修改源代码的进行功能增强