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

Spring-Day5

14.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"
    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"
    
    //注解扫描,指定需要扫描的包,这个包下的注解就会生效
    <context:component-scan base-package="con.itheima.poko"/>
    //开启注解支持
    <context:annotation-config>
</beans>

属性如何注入?

//相当于<bean id="user" class="com.itheima.pojo.User"/>
@Component
public class User(
   public String name;
   
   //相当于<property name="none" value="myname"
   @Value("myname")
   public void setName(String name) {
      this.name = name;
   }
}

Component衍生注解:在web开发中,会按照mvc三层架构分层

  1. dao 【@Repository】

  2. service 【@Service】

  3. controller 【@Controller】

    这四个注解功能是一样的,代表将某个类注册到Spring中,装配Bean

自动装配

@Autowired : 自动装配通过类型名字
   -如果Autowired不能唯一自动装配上属性,则需要通过@Qualifier(value="xxx")
@Nullable : 字段标记了这个注解,说明这个字段可以为null
@Resource : 自动装配通过名字,类型

作用域

@Component
@Scope("prototype")
public class User(
   public String name;
   
   @Value("myname")
   public void setName(String name) {
      this.name = name;
   }
}

15.使用JavaConfig实现配置

配置类

@ComponentScan("com.itheima.pojo")
public class TestConfig{
    //注册一个bean,就相当于我们之前写的一个bean标签
    //这个方法的名字,就相当于bean标签中的id属性
    //这个方法的返回值,就相当于bean标签中的class属性
    @Bean
    public User user() {
        return new User();//就是返回要注册刀bean的对象
    }
}

测试类

publiclass MyTest {
    public static void main(String[] args) {
        //如果完全使用了配置类去做,我们就只能通过 AnnotationConfig 上来文来获取容器,通过配置类的class对象加载
        ApplicationContext context = new AnnotationConfigApplicationContext(TestConfig.class):
        User getUser = (User) context.getBean("user");
        System.out.println(getUser.getName());
    }
}


http://www.kler.cn/a/381439.html

相关文章:

  • 开源办公软件 ONLYOFFICE 深入探索
  • 蓝牙资讯|苹果AirPods Pro 2推出听力测试、助听器和听力保护等功能
  • 【连续多届检索,ACM出版】第四届大数据、人工智能与风险管理国际学术会议 (ICBAR 2024,11月15-17)--冬季主会场
  • 多线程--简单模拟实现线程池并使用--Java
  • 彻底解决idea不识别java项目
  • RabbitMQ交换机类型
  • 什么是软件设计模式, 它们⽤于解决什么问题, 它们为什么有效
  • Redis到底支不支持事务?半事务
  • pycharm中的服务是什么?
  • Docker篇(学习前言)
  • 【Fargo】22:H.264文件读取并RTP分片打包
  • 练习LabVIEW第四十题
  • 在 Windows 中简化 Nginx 命令行操作
  • EL面包屑导航实现
  • (JVM)我们该如何认识 Java的内存模型(Java Memory Model(JMM))? 本篇文章告诉你答案 !带你全面了解JMM
  • 微控制器(MCU)如何运行存储在Flash的程序???
  • 数据分析挖掘系统-全方位洞察与决策
  • 众测遇到的一些案列漏洞
  • 从安全角度看多线程(附Golang举例)
  • QT中OpenGL学习笔记1
  • 全同态加密基于多项式环计算的图解
  • 基于Leaflet的自助标绘源码解析-其它对象解析
  • 文件上传漏洞修复措施
  • 论文 | PROMPTAGATOR : FEW-SHOT DENSE RETRIEVAL FROM 8 EXAMPLES
  • 酒店民宿小程序,探索行业数字化管理发展
  • 文章解读与仿真程序复现思路——电网技术EI\CSCD\北大核心《融合引调水工程的抽水蓄能电站与光伏联合运行短期优化调度模型 》