Spring--基于注解管理Bean

简介: Spring--基于注解管理Bean

前言


路遥说,在一个平凡的世界里,人要承受一定的痛苦和不安。但只要相信个体奋斗的力量,坚定地与生存搏斗,就能过上想要的生活。

很喜欢《平凡的世界》的一句话,一直不断的鼓励我努力向前,也送个各位看到这个写的很烂的文章的人,共勉~


IOC操作Bean管理(基于注解)


什么是注解


格式:@注解名称(属性名=属性值) 使用注解:注解作用在类(方法,属性)上使用目的:简化xml配置


Spring针对Bean管理中创建对象提供注解


  • @Component 普通用法
  • @Service 用于service业务逻辑层
  • @Controller 用于web层
  • @Repository 用于DAO持久层


基于注解方式实现对象创建例子


第一步 引入依赖

image.png

第二步 开启组件扫描

1 如果扫描多个包,多个包使用逗号隔开

2 扫描包上层目录


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

上面就是扫描整个caq包

第三步 创建类,在类上面添加创建对象注解

//在注解里面 value 属性值可以省略不写,

//默认值是类名称,首字母小写 /

/UserService -- userService


@Component(value = "userService")
<bean id = "userService" class = "">
@Service
@Controller
@Repository
public class UserService {}

就是扫描的时候扫描那些,和不扫描哪些


<context:component-scan base-package="com.caq" use-default-filters="false">
<context:include-filter type="annotation"
expression="org.springframework.stereotype.Controller"/></context:component-scan>


基于注解方式实现属性注入


(1)@Autowired:根据属性类型进行自动装配第一步把service和 dao对象创建,在service和 dao类添加创建对象注解 第二步在service注入dao对象,在service类添加dao类型属性,在属性上面使用注解


@Service
public class UserService {
//定义dao类型属性//不需要添加 set方法//添加注入属性注解@Autowired
private UserDao userDao;
public void add() {
System. out. println("service add. . . . ...") ;userDao. add() ;
}
}

(2)@Qualifier:根据名称进行注入 这个@Qualifier注解的使用,和上面@Autowired一起使用


@Autowired//根据类型进行注入
@Qualifier(value = "userDaoImp11")//根据名称进行注入
private UserDao userDao;

(3)@Resource:可以根据类型注入,可以根据名称注入


/ /@Resource//根据类型进行注入
@Resource (name = "userDaoImp11")//根据名称进行注入
private UserDao userDao;

(4)@Value:注入普通类型属性


@Value(value = "abc")
private String name;


完全注解开发


就是我不依赖xml了,我全用注解的知识

(1)创建配置类,替代 xml 配置文件


package com.caq.spring5.config;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
@Configuration  //作为配置类,代替xml配置文件
@ComponentScan(basePackages = {"com.caq"})
public class SpringConfig {}

(2)编写测试类


@Testpublic void testService2(){
    ApplicationContext context = new AnnotationConfigApplicationContext(SpringConfig.class); 
    UserService userService = context.getBean("userService", UserService.class);
    System.out.println(userService);
    userService.add();
}
com.caq.spring5.service.UserService@3eb7fc54Service
    add......abc
    do add...........



相关文章
|
14天前
|
Java Spring
【Spring】方法注解@Bean,配置类扫描路径
@Bean方法注解,如何在同一个类下面定义多个Bean对象,配置扫描路径
141 73
|
9天前
|
Java Spring 容器
【SpringFramework】Spring IoC-基于注解的实现
本文主要记录基于Spring注解实现IoC容器和DI相关知识。
45 21
|
14天前
|
存储 Java Spring
【Spring】获取Bean对象需要哪些注解
@Conntroller,@Service,@Repository,@Component,@Configuration,关于Bean对象的五个常用注解
|
14天前
|
存储 Java 应用服务中间件
【Spring】IoC和DI,控制反转,Bean对象的获取方式
IoC,DI,控制反转容器,Bean的基本常识,类注解@Controller,获取Bean对象的常用三种方式
|
14天前
|
Java Spring
【Spring配置】idea编码格式导致注解汉字无法保存
问题一:对于同一个项目,我们在使用idea的过程中,使用汉字注解完后,再打开该项目,汉字变成乱码问题二:本来a项目中,汉字注解调试好了,没有乱码了,但是创建出来的新的项目,写的注解又成乱码了。
|
20天前
|
XML Java 数据格式
Spring容器Bean之XML配置方式
通过对以上内容的掌握,开发人员可以灵活地使用Spring的XML配置方式来管理应用程序的Bean,提高代码的模块化和可维护性。
56 6
|
22天前
|
XML Java 数据格式
🌱 深入Spring的心脏:Bean配置的艺术与实践 🌟
本文深入探讨了Spring框架中Bean配置的奥秘,从基本概念到XML配置文件的使用,再到静态工厂方式实例化Bean的详细步骤,通过实际代码示例帮助读者更好地理解和应用Spring的Bean配置。希望对你的Spring开发之旅有所助益。
87 3
|
3月前
|
人工智能 自然语言处理 前端开发
SpringBoot + 通义千问 + 自定义React组件:支持EventStream数据解析的技术实践
【10月更文挑战第7天】在现代Web开发中,集成多种技术栈以实现复杂的功能需求已成为常态。本文将详细介绍如何使用SpringBoot作为后端框架,结合阿里巴巴的通义千问(一个强大的自然语言处理服务),并通过自定义React组件来支持服务器发送事件(SSE, Server-Sent Events)的EventStream数据解析。这一组合不仅能够实现高效的实时通信,还能利用AI技术提升用户体验。
268 2
|
2天前
|
Java 测试技术 应用服务中间件
Spring Boot 如何测试打包部署
本文介绍了 Spring Boot 项目的开发、调试、打包及投产上线的全流程。主要内容包括: 1. **单元测试**:通过添加 `spring-boot-starter-test` 包,使用 `@RunWith(SpringRunner.class)` 和 `@SpringBootTest` 注解进行测试类开发。 2. **集成测试**:支持热部署,通过添加 `spring-boot-devtools` 实现代码修改后自动重启。 3. **投产上线**:提供两种部署方案,一是打包成 jar 包直接运行,二是打包成 war 包部署到 Tomcat 服务器。
24 10
|
16天前
|
Java 数据库连接 Maven
最新版 | 深入剖析SpringBoot3源码——分析自动装配原理(面试常考)
自动装配是现在面试中常考的一道面试题。本文基于最新的 SpringBoot 3.3.3 版本的源码来分析自动装配的原理,并在文未说明了SpringBoot2和SpringBoot3的自动装配源码中区别,以及面试回答的拿分核心话术。
最新版 | 深入剖析SpringBoot3源码——分析自动装配原理(面试常考)
下一篇
开通oss服务