iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Spring使用IOC与DI实现完全注解开发
  • 309
分享到

Spring使用IOC与DI实现完全注解开发

2024-04-02 19:04:59 309人浏览 薄情痞子

Python 官方文档:入门教程 => 点击学习

摘要

方式一:@Component + @ComponentScan + @Value + @Autowired 首先还是pom文件,Maven项目依赖必不可少。 <depende

方式一:@Component + @ComponentScan + @Value + @Autowired

首先还是pom文件,Maven项目依赖必不可少。

 <dependencies>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-context</artifactId>
      <version>5.2.5.RELEASE</version>
    </dependency>
    <dependency>
      <groupId>org.projectlombok</groupId>
      <artifactId>lombok</artifactId>
      <version>1.18.20</version>
    </dependency>
    <dependency>
      <groupId>javax.annotation</groupId>
      <artifactId>javax.annotation-api</artifactId>
      <version>1.3.2</version>
    </dependency>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.11</version>
      <scope>test</scope>
    </dependency>
  </dependencies>

然后,写两个Java Bean,一个是Student学生类、另一个是School学校类。

由于不写xml配置,所以在两个类上方都要加上 @Component 注解,通过注解的方式将其交给Spring ioc容器管理,@Value注解则用于给8种基本数据类型以及String类型做依赖注入,@Autowired是针对引用类型的,这里不再多说了。

package com.szh.bean;
import lombok.Data;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;

@Data
@Component
public class Student {
    @Value("张起灵")
    private String name;
    @Value("20")
    private Integer age;
    @Autowired
    private School school;
}
package com.szh.bean;
import lombok.Data;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;

@Data
@Component
public class School {
    @Value("北京大学")
    private String name;
    @Value("北京市海淀区")
    private String address;
}

下面要写一个配置类,功能就是添加包扫描机制,确保上面那两个@Component 注解修饰的Java Bean可以被Spring扫描并添加至容器中。

package com.szh.config;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;

@Configuration
@ComponentScan(basePackages = "com.szh.bean")
public class SprinGConfig {
}

最后是我们的测试类了。

package com.szh;
import com.szh.bean.Student;
import com.szh.config.SpringConfig;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;

public class MyTest {
    @Test
    public void testIocAnnotation() {
        ApplicationContext ioc = new AnnotationConfigApplicationContext(SpringConfig.class);
        Student student = (Student) ioc.getBean("student");
        System.out.println(student);
    }
}

方式二:@Configuration + @Bean

pom文件和方式一是一样的。

下面是不一样的Java Bean。

package com.szh.entity;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

@Data
@NoArgsConstructor
@AllArgsConstructor
public class Goods {
    private String name;
    private String info;
}
package com.szh.entity;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.math.BigDecimal;

@Data
@NoArgsConstructor
@AllArgsConstructor
public class Order {
    private Integer id;
    private BigDecimal totalFee;
    private Goods goods;
}

然后是该方式对应的配置类,采用@Bean实现。

package com.szh.config;
import com.szh.entity.Goods;
import com.szh.entity.Order;
import org.springframework.beans.factory.annotation.Autowire;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import java.math.BigDecimal;

@Configuration
public class SpringConfig2 {
    @Bean
    public Goods goods() {
        return new Goods("联想-拯救者", "一款不错的游戏笔记本");
    }
    @Bean
    public Order order(Goods goods) {
        return new Order(1, new BigDecimal(9999), goods);
    }
}

最后是这种方式的测试类代码。

    @Test
    public void testIocAnnotation2() {
        ApplicationContext ioc = new AnnotationConfigApplicationContext(SpringConfig2.class);
        Order order = (Order) ioc.getBean("order");
        System.out.println(order);
        System.out.println("IOC容器中存在的bean如下:");
        String[] beanDefinitionNames = ioc.getBeanDefinitionNames();
        for (String bean : beanDefinitionNames) {
            System.out.println(bean);
        }
    }

到此这篇关于Spring使用IOC与DI实现完全注解开发的文章就介绍到这了,更多相关Spring完全注解 内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: Spring使用IOC与DI实现完全注解开发

本文链接: https://www.lsjlt.com/news/166803.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Spring使用IOC与DI实现完全注解开发
    方式一:@Component + @ComponentScan + @Value + @Autowired 首先还是pom文件,maven项目依赖必不可少。 <depende...
    99+
    2024-04-02
  • Spring IOC 常用注解与使用实例详解
    目录@Component@Autowired@Qualifier@Bean@ImportResource@Profile@PropertySource@Component 注解@co...
    99+
    2024-04-02
  • Spring IOC容器Bean管理的完全注解开发放弃配置文件
    目录IOC容器基于Bean管理的完全注解开发放弃配置文件创建配置类测试一下IOC容器基于Bean管理的完全注解开发放弃配置文件 通过注解的方式,我们不需要在xml配置文件里进行各种注...
    99+
    2024-04-02
  • Spring IOC常用注解有哪些与如何使用
    本文小编为大家详细介绍“Spring IOC常用注解有哪些与如何使用”,内容详细,步骤清晰,细节处理妥当,希望这篇“Spring IOC常用注解有哪些与如何使用”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来...
    99+
    2023-06-30
  • IOC使用Spring实现附实例详解
    目录 一、相关导读 1. Maven系列专栏文章 2. Mybatis系列专栏文章 3. Spring系列专栏文章 二、前言 Spring简介 Spring体系结构 三、Spring实现IOC 1. 创建Maven工程,引入对应依赖 2....
    99+
    2023-09-02
    java maven spring mybatis
  • 使用Spring自定义实现IOC和依赖注入(注解方式)
    目录大致思路:注解实现方式:xml实现方式:1. 引入相关jar2. 定义注解类ExtService是注解类的, ExtResource是注解属性的3.定义一个借口4. 接口和使用注...
    99+
    2024-04-02
  • Spring-IOC容器中的常用注解与使用方法详解
    Spring是什么? Spring是一个轻量级Java开发框架,最早有Rod Johnson创建,目的是为了解决企业级应用开发的业务逻辑层和其他各层的耦合问题。它是一个分层的Java...
    99+
    2024-04-02
  • 如何使用注解开发spring
    本篇文章为大家展示了如何使用注解开发spring,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。在Spring4之后,要使用注解开发,必须要保证aop的包导入了。使用注解需要导入context约束,增...
    99+
    2023-06-15
  • Spring使用注解开发的方法
    这篇文章主要介绍了Spring使用注解开发的方法的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Spring使用注解开发的方法文章都会有所收获,下面我们一起来看看吧。在Spring4之后 要使用注解开发 必须保证...
    99+
    2023-06-30
  • Java Spring的使用注解开发详解
    目录使用注解开发1.bean2.属性如何注入3.衍生的注解4.自动装配5.作用域6.小结代码show1.新建一个模块:2.新建pojo包及类3.新建dao包及类4.新建service...
    99+
    2024-04-02
  • Spring详解使用注解开发流程
    目录在Spring4之后 要使用注解开发 必须保证aop包导入了 使用注解需要导入context约束 增加 注解的支持 <xml version="1.0" encoding...
    99+
    2024-04-02
  • 详解spring如何使用注解开发
    在Spring4之后,要使用注解开发,必须要保证aop的包导入了。 使用注解需要导入context约束,增加注解的支持。 <?xml version="1.0" ...
    99+
    2024-04-02
  • 使用Spring如何实现注解Cache与Redis缓存
    使用Spring如何实现注解Cache与Redis缓存?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。1. redis 和 ehcache的区别:简单了解了下,个人觉得 从部署上...
    99+
    2023-05-31
    spring redis 缓存
  • Spring@Bean注解的使用场景与案例实现
    目录一、简单介绍二、注解说明1. 注解源码2. 注解使用场景三、使用案例1. 案例描述2. 案例实现新建注入到IOC容器中的User类创建Spring的配置类BeanConfig创建...
    99+
    2023-03-10
    Spring @Bean使用案例 Spring @Bean注解
  • Spring Boot应用开发初探与实例讲解
    Spring Boot是由Pivotal团队提供的全新Spring开发框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。 从它的名字可以看出,Spring Boot...
    99+
    2024-04-02
  • Mybatis分页的实现及使用注解开发操作
    分页的实现 sql的分页语句为(第一个参数为当前页面的索引起始位置,第二个参数为页面的展示个数) select * from user limit #{startInd...
    99+
    2024-04-02
  • 使用SpringBoot如何实现注册与发现服务
    这篇文章将为大家详细讲解有关使用SpringBoot如何实现注册与发现服务,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。微服务实践“微服务”自然要学习如何做服务注册与发现基于SpringBo...
    99+
    2023-05-31
    springboot 服务
  • 怎么使用Node.js实现JavaScript全栈开发
    这篇文章主要介绍了怎么使用Node.js实现JavaScript全栈开发,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。js有什么特点1、js属于一种解释性脚本语言;2、在绝大...
    99+
    2023-06-10
  • 在Spring中AOP怎么使用注解来实现
    这期内容当中小编将会给大家带来有关在Spring中AOP怎么使用注解来实现,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。spring对AOP的实现提供了很好的支持。下面我们就使用Spring的注解来完成A...
    99+
    2023-05-31
    spring aop
  • Spring使用注解方式实现创建对象
    首先 我们要搞清楚一个基础概念 什么是注解? 注解 可以说是代码里的一些特殊标记。 格式是 @() 里面可以有 属性=属性的值 可以有多个属性值 多属性值之间 用逗号隔开 注解 可以...
    99+
    2023-02-06
    Spring创建对象 Spring注解方式创建对象
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作