javaspring ioc

论文阅读笔记:Extended Vision Transformer (ExViT) for Land Use and Land Cover Classification 注意力机制驱动的深度模型最近取得了成功,如最具代表性的视觉转换器(ViT),吸引了一波高级研究来探索它们对更广泛领域的适应。然而,遥感(RS)领域中基于Transformer的方法更关注单模态数据,这可能会在充分利用不断增长的多模态地球观测数据时失去可扩展性。为此,我们提出了一种新的多模式深度学习框架,通过在最小修改的情况下扩展传统的ViT,针对土地利用和土地覆盖(LULC)分类任务。 阅读详情

spring

一、spring主要解决的问题

Spring框架是为了解决企业应用开发的复杂性而创建的。
Spring的用途不仅仅限于服务器端的开发。从简单性、可测试性和松耦合性角度而言,绝大部分Java应用都可以从Spring中受益。使用基本的JavaBean代替EJB,并提供了更多的企业应用功能。
spring就是作为容器,用来管理struts(应用层)和hibernate(持久层)之间的工作的。它其实就是程序中的一个桥梁或者说管理者,整个程序的运行都依靠spring来管理。用什么方法来管理呢?最常见的就是IOC了。

二、spring/ioc

  1. 概念:
    核心理念:inversion of conerol 控制反转,控制权从调用者转到了spring的IOC容器,由IOC容器进行实例化和依赖注入。
    控制反转:就是由容器控制程序之间的(依赖)关系,而非传统实现中,由程序代码直接操控。
    依赖注入:组件之间的依赖关系由容器在运行期决定 ,由容器动态的将某种依赖关系注。
  2. xml配置:
    (1)、默认构造器实例化
    xml配置:
    在这里插入图片描述
  3. spring创建bean的三种方式:
    3.1通过构造方法创建bean(最常用)
    3.1.1 spring默认会通过无参构造方法来创建bean,如果xml文件是这样配置,则实体类中必须要有无参构造方法,无参构造方法默认会有,如果写了有参构造方法。
    还采取了默认方法创建bean,则必须手动写个无参构造方法。
<bean id="user" class="com.spring.beanTest.User">
<property name="name" value="lishi"></property>
</bean>
public User(){
	System.out.println("无参构造创建bean");
}
public User(String name){
	System.out.println("有参构造创建bean");
}

3.1.2 如果通过有参构造方法来创建bean,则xml配置文件需要通过构造方法来为属性赋值

<bean id="user" class="com.spring.beanTest.User">
<constructor-arg name="name" value="lishi"></constructor-arg>
</bean>

3.2通过静态工厂创建bean
   首次,先建一个类,类中有静态方法

public class UserFactory{
	public static User getUser(){
		return new User();
	}
}

然后配置文件:

<bean id="user1" class="com.spring.beanTest.UserFactory" factory-method="getUser"></bean>

即可创建bean对象

public static void main( String[] args ) {
        ApplicationContext ac =new ClassPathXmlApplicationContext("application.xml");
        类名 c =ac.getBean("c", 类名.class);
    }

3.3通过实例工厂创建bean
  首次,先建一个类,类中有普通方法

public class UserFactory2{
	public User getUser2{
    	return new User();
    }
}

然后配置文件:首先要先创建一个userFactory2的bean,因为普通方法需要对象去调用,再通过factory-bean把userFactory2带进来

<bean id="userFactory" class="com.spring.beanTest.UserFactory2"></bean>
<bean id="user2" factory-bean="userFactory" factory-mothod="getUser2"></bean>

即可创建bean对象

public static void main( String[] args ) {
        ApplicationContext ac =new ClassPathXmlApplicationContext("application.xml");
        类名 c =ac.getBean("c", 类名.class);
    }
  1. spring创建bean的三种方式:
    在Spring中依赖注入有四种方式:set注入(通常也叫属性注入),构造函数注入,接口注入(这个现在基本不用),注解注入(@Autowire),下面对set方法注入,构造函数注入,以及注解注入的用法举例说明。
    1、set方法注入(属性注入)
    UserDao.java
public class UserDao{
    public void inserUser(User user){
        //具体逻辑省略
    }
}

UserService.java

public Interface UserService{
    void inserUser(User user);
}

UserServiceImpl.java

public class UserServiceImpl implements UserService{
    private UserDao userDao;
    public void setUserDao(UserDao userDao){
        this.userDao = userDao;
    }
    public void insertUser(User user){
        userDao.insert(user);
    }
}

Spring配置文件

 <bean id="userDao" class="UserDao"></bean>
 <bean id="userService" class="UserServiceImpl">
 <property name="userDao" ref="userDao">
 </bean>

以上就可以把userDao注入到UserServiceImpl中
4.2、构造函数注入
User.java

public class User{
    private String name;
    private Integer age;
    //getter/setter方法省略
    public User(String name,int age){
        this.name = name;
        this.age = age;
    }
}

现在通过Spring配置文件来注入这User这个对象

 <bean id="user" class="User">
     <constructor-arg index="0" value="zhangsan"/>
     <constructor-arg index="1" value="20>
 </bean>

以上就可以将属性值注入到User对象中。当然如果想以set方法注入的例子话,其实也一样。就是在UserServiceImpl需要构造函数,形参就是userDao了,就不需要setter方法了。那么关于其Spring的配置文件的书写应该改成这样

 <bean id="userDao" class="UserDao"></bean>
 <bean id="userService class="UserServiceImpl">
     <constructor-arg  index="0" ref="userDao">
 </bean>

4.3、注解注入
注册springbean @controller @service @Repository
自动依赖注入 @Autowired @value

@Component
public class UserDao{
    public void inserUser(User user){
        //具体逻辑省略
    }
}

UserService.java

public Interface UserService{
    void inserUser(User user);
}

UserServiceImpl.java

@Service
public class UserServiceImpl implements UserService{
    @Autowire
    private UserDao userDao;
    public void insertUser(User user){
        userDao.insert(user);
    }
}

Spring对应的配置文件

 <context:component-scan base-package="com.spring">

通过比较,注解注入要比其余注入要方便的多,代码和配置文件也写的少,在开发的过程中还是建议使用注解注入。

  1. bean的作用域:
    注解用@scope(类别)
    xml:scope=“类别”
    在这里插入图片描述
  2. bean的生命周期:
    在这里插入图片描述
1:instantiate bean对象实例化
2:populate properties 封装属性
3:如果Bean实现BeanNameAware 执行 setBeanName
4:如果Bean实现BeanFactoryAware 或者 ApplicationContextAware 设置工厂 setBeanFactory 或者上下文对象 setApplicationContext
5:如果存在类实现 BeanPostProcessor(后处理Bean) ,执行postProcessBeforeInitialization
6:如果Bean实现InitializingBean 执行 afterPropertiesSet 
7:调用<bean init-method="init"> 指定初始化方法 init
8:如果存在类实现 BeanPostProcessor(处理Bean) ,执行postProcessAfterInitialization
9:执行业务处理
10:如果Bean实现 DisposableBean 执行 destroy
11:调用<bean destroy-method="destroy"> 指定销毁方法 customerDestroy

例如:

@PostConstrust
public void init(){
	System.out.println("开始。。。。");
}
@PreDertroy
public void destroy(){
	System.out.println("销毁。。。。");
}
  1. ioc的优势:
    由上面可以看出来IOC的优点有:降低了耦合性,提高程序的灵活性和可维护性。
    缺点是:如果修改了类名,还需到XML文件中手动修改。

第一次注册博客账号,第一次写博客,第一次用写的文章内容为java。不足之处,还望多多指教。

【经验&技巧】DDR仿真中的挑战与解决方案 由于DDR的数据总线具备双向数据传输功能,需要对读写模式进行独立仿真环境的创建,并且分为连续和突发模式,再加之有单端和差分信号、有数据总线和地址总线,需要在数据传输过程中额外注意串扰的影响,并选择合适的驱动和负载以找寻设计裕量与串扰强度之间的平衡,因此,实际操作步骤和分析过程还是较为繁琐耗时的,需要设计者具有足够的耐心。 阅读详情

相关推荐

告别环境配置噩梦:VSCode + MinGW 下 OpenGL (glad/glm/glfw) 一站式配置指南(含常见错误排查)

本文提供了一份详细的VSCode与MinGW下OpenGL开发环境配置指南,涵盖glad、glm和glfw三大核心库的安装与调试。通过逐步指导解决常见错误,帮助开发者快速搭建高效的OpenGL开发环境,特别适合初学者避免环境配置中的常见陷阱。

weixin_42557803的博客 490

spring强行注入和引用的例子

前提: public class DataProviderManagerImpl implements ApplicationContextAware @Override public void setApplicationContext(ApplicationContext applicationContext) throws BeansException { this.appl...

weixin_30825199的博客 393

GE Proficy Historian8.0历史数据库部署与配置全攻略

本文提供了GE Proficy Historian 8.0历史数据库的详细部署与配置指南。内容涵盖安装前的系统环境、权限与依赖检查,服务器安装的关键步骤与类型选择,采集器的安装配置与数据接入,以及客户端工具的使用与数据分析实战。旨在帮助用户规避常见陷阱,实现一次部署成功,构建稳定高效的工业数据归档平台。

silver的专栏 768

java对象的强引用,软引用,弱引用和虚引用

众所周知,java中是JVM负责内存的分配和回收,这是它的优点(使用方便,程序不用再像使用c那样操心内存),但同时也是它的缺点(不够灵活)。为了解决内存操作不灵活这个问题,可以采用软引用等方法。        在JDK1.2以前的版本中,当一个对象不被任何变量引用,那么程序就无法再使用这个对象。也就是说,只有对象处于可触及状态,程序才能使用它。这 就像在日常生活中,从商店购买了某样物品

小小时代的专栏 476

利用SPSS实现逻辑回归,树模型,以及广义线性模型

本案例是IBM SPSS数据分析与挖掘实战案例精粹----第九章的学习记录 案例背景:分析出导致急救后迟发性颅脑损伤的主要影响因素,共有201项案例: 分析思路:先使用logistic回归模型进行影响因素筛选,然后利用分类树探索自变量中是否存在交互作用,最后利用广义线性模型过程拟合带交互项的Logistic回归模型 字段:性别,年龄,收缩压,舒张压,血小板,脑挫伤,中线位移,脑肿胀,入院意识,是否手术急救,其余急救措施,是否出现迟发性脑损伤; ...

hepan_defeng的博客 1万+

点云去噪:基于点云拟合的方法

点云处理是计算机视觉中的重要任务之一,而点云去噪是点云处理的关键步骤之一。在实际应用中,由于采集设备的噪声、运动估计误差或者环境干扰等因素,点云数据中常常包含有噪声点,这些噪声点会对后续的点云分析和处理造成不良影响。一种简单的方法是计算点到拟合曲面的距离,并将距离超过某个阈值的点定义为噪声点,进行过滤。一种简单的方法是计算点到拟合曲面的距离,并将距离超过某个阈值的点定义为噪声点,进行过滤。该方法通过拟合点云数据的曲面模型,对噪声点进行识别和过滤,从而得到更加干净的点云数据。

AuSwift的博客 638

JavaSpring【二、IOC】

概述: 接口及面向接口编程 接口:用于沟通的中介物的抽象,实体把自己提供给外界的方法的抽象化说明,将声明和实现分离,使其能够改变内部而不影响与外部的交互方式 面向接口编程:在结构设计中,分清层次及调用关系,每层只向外提供一组功能接口,各层仅依赖接口而非实现 IOC概念 Inversion of Control:是一个重要的面向对象编程的法则来削减计算机程序的耦合问题,也是轻量级的Spring框架...

weixin_30915275的博客 79

倾斜摄影数据转换为3DTile格式的方法:基于CesiumLab GIS

通过使用CesiumLab GIS,倾斜摄影数据可以方便地转换为3DTile格式,并在CesiumJS等3D地理信息可视化工具中进行展示和分析。一旦成功导入3DTile数据,就可以在CesiumLab GIS中利用其强大的可视化和分析功能进行进一步的处理。转换完成后,可以将生成的3DTile数据导入到CesiumLab GIS中进行可视化和分析。启动CesiumLab GIS应用程序,并按照界面上的指导导入转换后的3DTile数据。脚本将开始执行,并将倾斜摄影数据转换为3DTile格式。

ObDjango的博客 1076

javaspring(IOC详解)

Primary,@Qualifier,@Resource,想要哪个类生效,就加上去。IOC容器中创建,管理的对象,称为bean。

weixin_47048025的博客 338

【YOLO目标检测全栈实战】68 模型量化:从FP32到INT8,精度不掉,速度翻倍

摘要: 模型量化能显著提升推理速度(如YOLOv5s帧率从15FPS提升至38FPS),但需避免三大误区:1)校准集需覆盖实际场景,而非随机采样;2)敏感层(如检测头)应保留FP32精度;3)预处理必须与量化前后一致。通过混合精度量化(Backbone用INT8,检测头用FP32)和逐通道量化,可实现<1%的mAP损失。关键步骤包括校准数据准备、量化感知训练及逐层精度评估,最终在Jetson Nano等边缘设备上实现速度与精度的平衡。

企鹅码农的专属播客,分享10多年的实战案例和经验解读,包含YOLO、RT-DETR、AI等各个工作领域。 146

通用抓取算法AnyGrasp(Graspnet)——本地部署并测试自定义输入数据

背景:GraspNet在数据采集方面,首先将相机固定到机械臂末端,对同一个场景拍摄256个不同的角度,同时场景中的每个物体都会提前采集好3D模型,之后将其投射到仿真环境中,在仿真环境中,对抓取位姿进行打标签,如此完成数据的采集。在运行官方的测试示例时,使用的是路径下的输入数据,可以分析下。color.png(输入):rgb图像(输出):输出的生成抓取位姿的图像depth.png(输入):和当前rgb图像对应的深度图像(保存格式是单通道uint16)meta.mat。

boss-dog 1329

Java Spring框架基础教程

Java Spring框架是一个轻量级的、开源的应用程序框架,用于开发Java应用程序。- 面向切面编程:Spring框架的AOP模块提供了强大的面向切面编程功能,可以将与业务逻辑无关的代码(如日志、事务管理等)从业务代码中分离出来,使得代码更加清晰和可维护。- 松散耦合:Spring框架通过IoC容器管理对象之间的依赖关系,使得对象之间的耦合度降低,提高了代码的可维护性和可测试性。- 编写业务逻辑代码:根据项目需求,编写业务逻辑的代码,可以使用Spring框架提供的功能和特性来简化开发过程。

C891106的博客 469

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

什么是Java Spring框架?

Spring框架主要由七部分组成,分别是Spring Core、Spring AOP、Spring ORM、Spring DAO、Spring Context、Spring Web和Spring Web MVC。每一部分都有其特定的功能和用途,共同构成了Spring框架的完整体系,这些部分协同工作,为开发者提供了一套全面而强大的应用开发解决方案。Spring Cloud是Spring框架的一个子项目,它提供了一系列用于构建微服务架构的工具和组件,包括服务发现、配置管理、负载均衡、断路器等功能。

编程小弟的博客 1009

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

JAVA Spring框架

Java Spring 框架是当前最流行的 Java EE 应用程序框架,是面向 Java 的开源框架。Spring 框架的核心思想是基于 POJO 编程模型,采用基于 IOC 的架构实现松耦合,消除传统技术中的编程繁琐和复杂性。使用Spring 框架可以提高应用开发的效率和灵活性,帮助程序员进入快速开发行列。 Spring 框架的实现使用核心模块和重要概念,主要有以下几点: spring容器: 负责管理框架的核心功能,它是基于 IOC 的容器; 组件注册: 将组件]映射到容器中,可以采用 xml

qq_46086519的博客 372

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

学习笔记(三):spring项目种的IOC和DI 和 项目中的各层之间的关系与实现的功能

spring的contorller、service、dao 与 spring的IOC(控制反转) 和 DI(依赖注入)

boolean_huhehe的博客 205

IoC 控制反转 & DI 依赖注入

程序追求低耦合,因此使用对象时不要主动使用 new 产生对象,转换为由外部提供对象,进而引入了 IoC (Inversion of Control) 的思想。java Spring 中核心容器: IoC容器: 充当 IoC 思想中的外部。在容器中建立 bean 与 bean 之间的依赖关系的整个过程,叫做依赖注入。删除使用 new 的形式创建对象的代码。提供依赖对象对应的 setter 方法。

Suburbia的博客 402

Java Spring 框架

当今世界,Java Spring 成为了最流行的 Java 开发框架之一。Spring 框架是一个轻量级的、高效的框架,它是 Java 应用程序开发的理想选择。在本文中,我们将深入探讨 Java Spring 框架的特性、优点以及如何使用它来构建高质量的应用程序。

我滴小博客 627

【Java闭关修炼】Spring-IOC介绍

【Java闭关修炼】Spring-LOC介绍

qq_44653420的博客 713

Java Spring IoC&DI :探索Java Spring中控制反转和依赖注入的威力,增强灵活性和可维护性

Java Spring框架中的IoC(Inversion of Control,控制反转)和DI(Dependency Injection,依赖注入)是框架的核心概念之一,它们旨在降低组件之间的耦合度,提高代码的灵活性和可维护性。

smile_sundays的博客 5181

②【Spring】一文精通:IOC - 基于XML方式管理Bean

IOC - 基于Spring XML配置文件的Bean管理 》》》创建bean、获取bean、setter注入、引用外部bean、内部bean、构造器注入、级联属性、特殊值、P命名空间、集合属性、自动装配,应用外部配置文件..等方式为bean的对象属性赋值。

ebb29bbe的博客 759

Springboot开发开发技术以及易错点调整-21

Springboot开发开发技术以及易错点调整

编程是一门实践技术 1254

分层解耦、三层架构

1. 控制层(controlle层):接收前端发送的请求,对请求进行处理,并响应数据。2. 业务逻辑层(service层):处理业务逻辑的。组合dao层中的简单方法,形成复杂的功能(业务逻辑操作)3. 数据访问层(dao层):操作数据存储文件。定义了对于数据库最基本的CRUD(增删改查)操作内聚:软件中各个功能模块内部的功能联系耦合:衡量软件中各个层/模块之间的依赖、关联的程度软件设计原则:高内聚,低耦合控制反转:Inversion Of Controller,简称IOC。对象的创建控制权由程序自身转移到外

weixin_56017687的博客 812

Java Spring的8大模块

5.Spring是开源框架,轻量级框架,是面向切面(AOP)和控制反转(IoC)的容器框架。6.Spring0为简化而生,让程序员只关心核心业务的实现,不关注非业务逻辑代码。3.控制反转(IoC)是一种编程思想,也是一种设计模式,控制反转做了两件事:、2.Spring 采用“控制反转”这种编程思想来解决这个问题。1.软件要符合OCP开闭原则和DIP依赖倒置原则。4.依赖注入是控制反转”这种编程思想的具体实现。1.不再new对象,new对象的权利交出去。2.对象之间的维护权限交出去。第二种:构造方法注入。

tsin_9的博客 176

前后端跨域统一配置

2. 将CORSFilter 配置到Ioc容器当中。

q15216650139的博客 224

【Java EE】Spring核心思想(一)——IOC

Spring核心思想(一)——IOC,什么是IoC呢?,理解 Spring IoC,DI 概念说明

ZXT的博客 2224

Spring框架-IOC

介绍Spring框架的重点-IOC

J的博客 494
pingtougectrl
博客等级 码龄7年 0粉丝 0原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值