<Java EE 进阶> 3.Spring简单的读和取

简介: <Java EE 进阶> 3.Spring简单的读和取

在String中更简单的存储和读取对象的核心是使用注解

1.存储Bean对象

(1)准备工作:配置扫描路径

需要先在spring-config中添加一行bean注册内容

其中标红一行为注册扫描的包,只有此包下的类对象才能被存储到String中

(2)添加注解存储Bean对象

对象存储到String中,有两类注解可以实现:

1.类注解:@Controller、@Service、@Repository、@Component、@Configuration。

2.方法注解:@Bean。

① 类注解

这五个类注解的用法一样

package com;
 
import org.springframework.stereotype.Controller;
 
 
@Controller
public class UserController {
    public void sayHi() {
        System.out.println("Hi Hi Hi");
    }
}

读取bean代码:

public class App {
    public static void main(String[] args) {
 
        //1. 得到上下文
        ApplicationContext context = new ClassPathXmlApplicationContext("spring-config.xml");
        //2.得到bean
        UserController userController = (UserController) context.getBean("userController");
        //3.调用bean方法
        userController.sayHi();
    }
}

问题:既然功能一样为什么还要这么多类注解呢?

那是因为用途不同,不同注释可以将程序的工程分层

@Controller:表示的是业务逻辑层

@Service:服务层

@Repository:持久层

@Configuration:配置层

@Component:标注一个类为String容器的Bean

补充:Bean 命名规则

正常情况命名为Bean类名字的首字母小写

若Bean类的第一个第二个字母都大写,此时就用原类名命名。

② 方法注解@Bean

类注解是添加到某个类上的,而方法注解是放到某个方法上的

在Spring框架中,方法注解@Bean要配合类注解才能将对象存储到Spring容器中

补充:重命名 Bean

未完待续...

目录
相关文章
|
3天前
|
前端开发 JavaScript Java
计算机Java项目|基于Spring Boot的中小型医院网站的设计与实现
计算机Java项目|基于Spring Boot的中小型医院网站的设计与实现
|
3天前
|
前端开发 JavaScript Java
计算机Java项目|基于Spring Boot的宠物咖啡馆平台的设计与实现
计算机Java项目|基于Spring Boot的宠物咖啡馆平台的设计与实现
|
3天前
|
前端开发 JavaScript Java
计算机java项目|springboot基于spring框架的电影订票系统
计算机java项目|springboot基于spring框架的电影订票系统
|
3天前
|
Java Maven 数据安全/隐私保护
详解 Java AOP:面向方面编程的核心概念与 Spring 实现
详解 Java AOP:面向方面编程的核心概念与 Spring 实现
14 1
|
1天前
|
Java 测试技术 持续交付
Java一分钟之-Spring Cloud Contract:契约测试
【6月更文挑战第16天】Spring Cloud Contract是微服务契约测试框架,通过DSL定义接口行为,使用WireMock生成存根进行独立开发验证。常见问题包括契约编写不清晰、未集成到CI/CD和契约版本控制混乱。例如,定义一个`GET /greeting`返回JSON响应的契约,Spring Cloud Contract会自动生成测试代码,帮助确保服务间接口一致性,提升开发效率和系统稳定性。
25 7
|
1天前
|
前端开发 Java 数据库
Java一分钟之-Spring WebFlux:响应式编程
【6月更文挑战第16天】Spring WebFlux是Spring Framework 5中的非阻塞Web框架,采用Reactor和响应式编程,支持在Netty等服务器上运行。它提供非阻塞IO和函数式路由,提升并发性能。常见问题包括阻塞操作误用、背压处理不当和对响应式编程理解不足。通过代码示例展示了如何设置路由和处理器函数。学习和实践Spring WebFlux有助于开发高性能Web应用。
20 8
|
2天前
|
安全 Java API
Java一分钟之-Spring Data REST:创建RESTful服务
【6月更文挑战第15天】Spring Data REST让基于Spring Data的项目轻松创建REST API,免去大量控制器代码。通过自动HTTP映射和链接生成,简化CRUD操作。文章涵盖启用REST、配置仓库、自定义端点、解决过度暴露、缺失逻辑和安全性问题,提供代码示例,如自定义Repository、投影和安全配置,强调在利用其便利性时注意潜在挑战。
19 5
|
3天前
|
运维 Java 程序员
新手进阶:用对if-else,让你的Java逻辑判断不再纠结!
【6月更文挑战第14天】本文介绍了如何有效使用Java中的if-else语句。从基础开始,解释了if-else用于根据条件执行不同代码路径的功能。接着,通过实践演示如何避免过度嵌套以提高代码可读性,利用逻辑运算符简化条件判断,以及在异常处理中运用if-else提升程序健壮性。通过这些最佳实践,旨在帮助开发者更好地掌握if-else,使其成为编程工具箱中的利器。
|
3天前
|
存储 安全 Java
详解 Spring Security:全面保护 Java 应用程序的安全框架
详解 Spring Security:全面保护 Java 应用程序的安全框架
12 1
|
3天前
|
存储 Java
Java 新手进阶:从变量到常量,一步步走向编程巅峰!
【6月更文挑战第14天】Java新手应掌握变量与常量,它们是编程基础。通过示例展示变量(如矩形的长度和宽度)用于存储可变数据,常量(如重力加速度)用于表示固定值。理解不同类型的变量,如字符串、整型和浮点型,并用`final`关键字定义常量。在银行账户管理程序案例中,变量跟踪账户信息,常量表示年利率。熟悉这些概念将提升编程技能。