首页 > 其他分享 >Spring笔记

Spring笔记

时间:2023-03-22 17:57:21浏览次数:46  
标签:Resource name Autowired Spring private 笔记 public String

spring

1.创建项目

GroupID是项目组织唯一的标识符, 比如我的项目叫test001  那么GroupID应该是 com.lixiaoming.test001 域名.公司名.项目名
ArtifactID就是项目的唯一的标识符, 一般是 项目名-xxx   比如test001-model

2.配置文件

开启自动装配
< context:annotation-config/>
指定要扫描的包,这个包下面的注解才会生效
<context:component-scan base-package="xxx.xxx"/>

有了< context:component-scan>,另一个< context:annotation-config/>标签可以移除掉,因为已经被包含进去了。

3注解

3.1@AutoWired

默认是byType方式,如果匹配不上,就会byName

public class People {
    @Autowired
    private Cat cat;
}

3.2@Nullable

字段标记了这个注解,说明该字段可以为空

public name(@Nullable String name){}

3.3@Autowired+@Qualifier

@Autowired不能唯一装配时,需要@Autowired+@Qualifier

public class People {
    @Autowired
    private Cat cat;
    @Autowired
    @Qualifier(value = "dog")
    private Dog dog;
    private String name;
}

3.4@Resource

默认是byName方式,如果匹配不上,就会byType

public class People {
    Resource(name="cat")
    private Cat cat;
    Resource(name="dog")
    private Dog dog;
    private String name;
}

@Resource和@Autowired的区别:

  • 都是用来自动装配的,都可以放在属性字段上
  • @Autowired通过byType的方式实现,而且必须要求这个对象存在【常用】
  • @Resource默认通过byname的方式实现,如果找不到名字,则通过byType实现!如果两个都找不到的情况下,就报错!【常用】
  • 执行顺序不同:@Autowired通过byType的方式实现。@Resource默认通过byname的方式实现

3.5@Component

等价于<bean id="user" classs"pojo.User"/>

@Component
public class User {  
     public String name ="秦疆";
}

@Component有几个衍生注解,会按照web开发中,mvc架构中分层。

  • dao (@Repository)
  • service(@Service)
  • controller(@Controller)
    这四个注解的功能是一样的,都是代表将某个类注册到容器中

4作用域

//原型模式prototype,单例模式singleton(sping默认)
//scope("prototype")相当于<bean scope="prototype"></bean>
@Component 
@scope("prototype")
public class User { 
    
    //相当于<property name="name" value="kuangshen"/> 
    @value("kuangshen") 
    public String name; 
    
    //也可以放在set方法上面
    @value("kuangshen")
    public void setName(String name) { 
        this.name = name; 
    }
}

标签:Resource,name,Autowired,Spring,private,笔记,public,String
From: https://www.cnblogs.com/KxWanna/p/17244921.html

相关文章

  • Java学习笔记(八)GUI
    GUI编程如何学习?这是什么?它怎么玩?该如何去平时运用?组件窗口弹窗面板文本框列表框按钮图片监听事件鼠标键盘破解工具1.简介Gui的核心技术:SwingAWT,......
  • nest.js学习笔记(七) --知识点拾遗
    1、nestjs中引用esm插件nestjs是使用commonjs规范进行开发,但是目前市场上很多插件是使用module的形式进行开发,所以遇到引用问题时,建议开发都绕过去,使用功能差不多的插件,但......
  • spring.rabbitmq.listener.simple.acknowledge-mode = manual and auto
    spring.rabbitmq.listener.simple.acknowledge-mode=manual*配置改成手动之后,spring不会报错。所以需要消费者抛异常*channel属性    basicNack和basicReject原......
  • 【笔记】好用的GIT
    一般使用流程你可以提出更改(把它们添加到暂存区),使用如下命令:gitadd<filename>gitadd*这是git基本工作流程的第一步;使用如下命令以实际提交改动:gitcommit-m"......
  • 【笔记】PCA——主成分分析:推导与问题
    PCA:主成分分析主要思想假设有m个n维数据,我希望只保留k维,尽可能减少信息损失,也就是(m,n)到(m,k)的过程比如一个实际应用场景,我有一堆wlatentcode,也就是(n,512)的数据......
  • webrtc QOS笔记三 RTT计算,SRS增加XR
    webrtcQOS笔记三RTT计算,SRS增加XRRTT计算方式WebRTC中目前有两种方式计算RTT:基于媒体流发送端的计算(默认开启)。通过SenderReport(SR)与ReceiverReport(RR)携带的信息......
  • SpringCloud 超大文件上传解决方案:分片断点上传(一)
    ​ HTML部分 <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="index.aspx.cs" Inherits="up6.index" %><!DOCTYPE html PUBLIC "-//W3C//DTDXH......
  • vue+element-ui+springboot实现修改当前登录用户的信息
    正文:话不多说,直接上代码springboot代码/***根据id修改当前登录用户的信息**@paramusername*@return*/@GetMapping("/userna......
  • spring @component的作用
    1、@controller控制器(注入服务)2、@service服务(注入dao)3、@repositorydao(实现dao访问)4、@component(把普通pojo实例化到spring容器中,相当于配置文件中的<beanid=""cl......
  • Cadence入门笔记(六):布局和板框
    说明布局和走线是最复杂的一个环节,涉及诸多技巧和设计理念。但为了入门学习简单考虑,这里只做基本的操作步骤说明。隐藏飞线上一节放置好元件后就要开始布局了,布局前可以......