首页 > 其他分享 >【学习笔记】Spring注解开发

【学习笔记】Spring注解开发

时间:2023-02-14 15:33:59浏览次数:44  
标签:name Spring 笔记 bean User 注解 public String

Spring注解开发

使用注解开发首先要导入context约束,然后开启注解支持

<?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:context="http://www.springframework.org/schema/context"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
        https://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/context
        https://www.springframework.org/schema/context/spring-context.xsd">
</beans>
<context:annotation-config/>

之前在配置文件中做的事情都可以使用注解来做,比如:bean的注册、属性的注入、规定作用域等等

  1. bean的注册

    使用的注解是 @Component 把该注解加在某个类上,就等价于把这个类注册到spring容器中

    @Component
    public class User {
        private String name;
    }

    需要注意的是要在配置文件中,扫描某个包下的所有类的注解,这样注解才会生效

    <context:component-scan base-package="com.wang.pojo"/>

    由@Component衍生出几个注解,如下:

    • dao层 ---- @Repository

    • service层 ----- @Service

    • controller层 ---- @Controller

    这几个注解是在MVC三层架构下使用的,每一个适用于该层架构,它们和@Component功能相同

  2. 属性的注入

    在上一篇文章中,我们探究了关于类作为属性如何注入以及使用注解@Autowired注入

    下面是普通属性,利用注解注入

    使用的注解是 @Value,可以放在属性上也可以放在set方法上

    @Value("张三")
    private String name;

    这句话等价于,在配置文件中的

    <property name="name" value="张三"/>
  3. 规定作用域

    在之前的文章中讲到,目前涉及到到作用域有 singleton 和 prototype

    利用注解 @Scope 可以规定这个bean的作用域

    @Scope("singleton")
    public class User {
        @Value("张三")
        private String name;
    }

Java的方式配置Spring

使用Java的方式配置Spring,可以完全放弃使用xml配置文件,通过java类和注解的结合,可以实现xml的配置功能

首先写一个实体类

package com.wang.pojo;
​
public class User {
    private String name;
​
    public String getName() {
        return name;
    }
​
    public void setName(String name) {
        this.name = name;
    }
}

这个时候,我们没有xml配置文件,所以给它加上注解也没有什么用

要想让他的注解有作用,就要写一个Java配置类,给这个类加上一个注解 @Configuration

@Configuration
public class AppConfig {
​
}

点进这个注解,发现这个注解也是@Component

image-20230214145929686

给AppConfig类加上@Configuration注解后,如果想要把实体类User注册到容器中还需要写一个方法,并且把这个方法用 @Bean 注解,如下

@Bean
public User getUser(){
    return new User();
}

这个类相当于在xml中注册一个bean

<bean id="getUser" class="com.wang.pojo.User"/>

bean 的id 相当于 方法的方法名

bean 的class 相当于 方法的返回值类型

这时这个实体类被注册到spring容器中了

然后在测试类中,使用AnnotationConfigApplicationContext 获得上下文

public void test01(){
    AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(AppConfig.class);
    User getUser = (User) context.getBean("getUser");
    System.out.println(getUser.getName());
}

AnnotationConfigApplicationContext() 需要传一个java类

标签:name,Spring,笔记,bean,User,注解,public,String
From: https://www.cnblogs.com/wztblogs/p/17119776.html

相关文章

  • springboot基础1
    springboot@RestController//为了返回字符串@RequestMapping用来处理请求地址映射@RestController//为了返回字符串publicclassHelloController{//接口:http......
  • 读书笔记(三)--世界上最伟大的推销员
    读书笔记--第3篇--《世界上最伟大的推销员》1.我用全身心的爱来迎接今天。我赞美敌人。我在心里默默地为每一个人祝福。我爱自己,我用清洁与节制来珍惜我的身体,我用智慧和......
  • 读书笔记(十三)--成交
    ​读书笔记--第13篇--《成交》​管理可以分为五个层次:第一个层次,最常见的时间管理,比如员工上下班打卡,有固定的工位,从事固定的工作。第二个层次,属地管理。人在一个固......
  • 读书笔记(六)--成交
    读书笔记--第6篇--《成交》​1.在IT企业,陌生人很容易一眼就能分辨出谁做销售,谁做技术,谁做管理。冲着陌生人微笑言语客气的一般是销售,一脸漠然甚至有些高傲的是技术,用......
  • 读书笔记(五)--公司绝不会告诉你的50大秘密
    读书笔记--第5篇--《公司绝不会告诉你的50大秘密》0.法律解救不了您。1.聪明过头并非明智之举。2.年龄和性别歧视是活生生的现实。3.公司并非畅所欲言的好地方。4.如果你与......
  • SpringMVC:域对象共享数据
    SpringMVC:域对象共享数据使用ServletAPI向request域对象共享数据@RequestMapping("/testServletAPI")publicStringtestServletAPI(HttpServletRequestrequest){......
  • Annotation - 元注解
     元注解包含@Target,@Retention,@Documented,@Inherited 具体的含义是:@Target表示该注解用于什么地方,可能的ElemenetType参数包括:*ElemenetType.CONST......
  • 三角函数学习笔记
    不会三角函数/ng基础定义锐角定义定义:直角所对的边称作斜边,角\(\theta\)所对的边称为对边,剩下的那条边(和\(\theta\)相邻)称为邻边。则\[\begin{aligned}\sin(\t......
  • 1.spring框架
    轻量级:体积小,应用java包少,可以独立进行使用。   Java直接输出一个类的对象的时候,会自动调用这个类的toString方法。这个方法在object类中,而所有的类都继承object......
  • Rust学习笔记
    CargoCargo是Rust的构建系统和包管理器。因为它可以为你处理很多任务,比如构建代码、下载依赖库并编译这些库查看版本号cargo--versionrustc--version#查看ru......