Spring的自动装配及注解开发(“最易懂得Spring学习”)(三)

简介: 八、使用注解开发1. bean2.属性如何注入3.衍生的注解4. 自动装配5.作用域6.小结

八、使用注解开发


在Spring4之后,要使用注解开发,要保证aop的包导入了。

<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-webmvc/artifactId>
    <version>5.3.9</version>
</dependency>

使用注解要导入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"
       xmlns:aop="http://www.springframework.org/schema/aop"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/context
        https://www.springframework.org/schema/context/spring-context.xsd
        http://www.springframework.org/schema/aop
        https://www.springframework.org/schema/aop/spring-aop.xsd">
    <!--开启自动注解的支持-->
    <context:annotation-config/>
</beans>

1. bean

// 等价于   <bean id="user" class="com.hxl.pojo.User"/>
//@Component 组件放在类上,说明这个类被Spring管理了,这就是bean
@Component
public class User {
    public String name = "王木木";
}

2.属性如何注入

// 等价于   <bean id="user" class="com.hxl.pojo.User"/>
//@Component 组件
@Component
public class User {
    //简单的可以用这个,复杂的还是用配置好
    //相当于<property name="name" value="王木木"/>
    //注解在set方法上也是可以的
    @Value("王木木")
    public String name;
    public void setName(String name) {
        this.name = name;
    }
}

3.衍生的注解


@Component 有几个衍生注解,我们在web开发中,我们会按照mvc三层架构分层。


  • dao【@Repository】


  • service【@Service】


  • controller【@Controller】


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


4. 自动装配


  • @Autowired:自动装配通过类型,名字。如果Autowired不能唯一自动装配上属性,则需要通过@Qualifier(value=“xxx”)


  • @Nullable:字段标记了这个注解,说明这个字段可以为null


  • @Resource:自动装配通过名字,类型


5.作用域


单例模式,原型模式。

@Component
//这个就是单例模式
@Scope("singleton")
public class User {
    @Value("王木木")
    public String name;
    public void setName(String name) {
        this.name = name;
    }

6.小结


  • xml与注解


  • xml更加万能,适用于任何场合,维护简单方便


  • 注解:不是自己类使用不了,维护相对复杂。


  • 最佳实践


  • xml用来管理bean


  • 注解只负责完成属性的注入


  • 我们在使用的过程中,只需要注意:必须让注解生效,就需要开启注解的支持。


<!--指定要扫描的包,这个包下的注解就会生效-->
<context:component-scan base-package="com.hxl.pojo"/>
<!--开启自动注解的支持-->
<context:annotation-config/>


相关文章
|
8天前
|
XML Java 测试技术
Spring IOC—基于注解配置和管理Bean 万字详解(通俗易懂)
Spring 第三节 IOC——基于注解配置和管理Bean 万字详解!
72 26
|
11天前
|
缓存 Java 数据库
SpringBoot缓存注解使用
Spring Boot 提供了一套方便的缓存注解,用于简化缓存管理。通过 `@Cacheable`、`@CachePut`、`@CacheEvict` 和 `@Caching` 等注解,开发者可以轻松地实现方法级别的缓存操作,从而提升应用的性能和响应速度。合理使用这些注解可以大大减少数据库的访问频率,优化系统性能。
155 89
|
2月前
|
Java Spring
【Spring】方法注解@Bean,配置类扫描路径
@Bean方法注解,如何在同一个类下面定义多个Bean对象,配置扫描路径
178 73
|
2月前
|
Java Spring 容器
【SpringFramework】Spring IoC-基于注解的实现
本文主要记录基于Spring注解实现IoC容器和DI相关知识。
58 21
|
2月前
|
存储 Java Spring
【Spring】获取Bean对象需要哪些注解
@Conntroller,@Service,@Repository,@Component,@Configuration,关于Bean对象的五个常用注解
|
2月前
|
Java Spring
【Spring配置】idea编码格式导致注解汉字无法保存
问题一:对于同一个项目,我们在使用idea的过程中,使用汉字注解完后,再打开该项目,汉字变成乱码问题二:本来a项目中,汉字注解调试好了,没有乱码了,但是创建出来的新的项目,写的注解又成乱码了。
|
3月前
|
前端开发 Java 开发者
Spring MVC中的请求映射:@RequestMapping注解深度解析
在Spring MVC框架中,`@RequestMapping`注解是实现请求映射的关键,它将HTTP请求映射到相应的处理器方法上。本文将深入探讨`@RequestMapping`注解的工作原理、使用方法以及最佳实践,为开发者提供一份详尽的技术干货。
220 2
|
21天前
|
XML Java 应用服务中间件
Spring Boot 两种部署到服务器的方式
本文介绍了Spring Boot项目的两种部署方式:jar包和war包。Jar包方式使用内置Tomcat,只需配置JDK 1.8及以上环境,通过`nohup java -jar`命令后台运行,并开放服务器端口即可访问。War包则需将项目打包后放入外部Tomcat的webapps目录,修改启动类继承`SpringBootServletInitializer`并调整pom.xml中的打包类型为war,最后启动Tomcat访问应用。两者各有优劣,jar包更简单便捷,而war包适合传统部署场景。需要注意的是,war包部署时,内置Tomcat的端口配置不会生效。
158 17
Spring Boot 两种部署到服务器的方式
|
21天前
|
Dart 前端开发 JavaScript
springboot自动配置原理
Spring Boot 自动配置原理:通过 `@EnableAutoConfiguration` 开启自动配置,扫描 `META-INF/spring.factories` 下的配置类,省去手动编写配置文件。使用 `@ConditionalXXX` 注解判断配置类是否生效,导入对应的 starter 后自动配置生效。通过 `@EnableConfigurationProperties` 加载配置属性,默认值与配置文件中的值结合使用。总结来说,Spring Boot 通过这些机制简化了开发配置流程,提升了开发效率。
56 17
springboot自动配置原理
|
26天前
|
XML JavaScript Java
SpringBoot集成Shiro权限+Jwt认证
本文主要描述如何快速基于SpringBoot 2.5.X版本集成Shiro+JWT框架,让大家快速实现无状态登陆和接口权限认证主体框架,具体业务细节未实现,大家按照实际项目补充。
71 11