服务器之家:专注于VPS、云服务器配置技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - Java教程 - Spring详解使用注解开发流程

Spring详解使用注解开发流程

2022-12-20 17:26张志明(努力奋斗版) Java教程

这篇文章主要为大家详细介绍了Spring如何使用注解开发,文中的示例代码讲解详细,对我们学习或工作有一定帮助,需要的可以参考一下

在Spring4之后 要使用注解开发 必须保证aop包导入了

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"
     xmlns:context="http://www.springframework.org/schema/context"
     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:annotation-config/>
</beans>

@Component:组件放在类上 说明这个类被Spring管理了 就是bean

import org.springframework.stereotype.Component;
//等价于<bean id="user" class="com.kero.pojo.User"/>
@Component
public class User {
  public String name = "xxx";
}

@Value

import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
//等价于<bean id="user" class="com.kero.pojo.User"/>
@Component
public class User {
  @Value("xxx")
//等价于<property name="name" value="xxx"/>
  public String name;
}

或者

import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
//等价于<bean id="user" class="com.kero.pojo.User"/>
@Component
public class User {  
  public String name;
  @Value("xxx")
  public void setName(String name) {
      this.name = name;
  }
}

@Component有几个衍生的注解 我们在Web开发中会按照MVC三层架构分层

dao[@Repository]

service[@Service]

controller[@Controller]

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

Spring详解使用注解开发流程

Spring详解使用注解开发流程

Spring详解使用注解开发流程

注解的作用域@Scope

@Scope 放在类上,默认是单例模式

@Scope(prototype)是原型模式,每次创建的都是一个新的对象

Spring详解使用注解开发流程

其作用等价于

Spring详解使用注解开发流程

补充:

@Scope("singleton") 或者@Scope 单例模式 下面代码输出结果为true

@Scope("prototype")下面代码输出结果为false

import com.kero.pojo.User;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class MyTest {
  public static void main(String[] args) {
     ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
      User user = context.getBean("user", User.class);
      User user2 = context.getBean("user", User.class);
      System.out.println(user==user2);
  }
}

xml vs 注解

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

注解 不是自己类使用不聊 维护相对复杂

最佳实践:xml用来管理bean

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

我们在使用的过程中 需要注意 使用以下代码

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

针对最佳实践的例子

<?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"
     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="com.kero"/>
  <!--开启注解的支持-->
  <context:annotation-config/>
  <bean id="user" class="com.kero.pojo.User" scope="prototype"/>
</beans>
import org.springframework.beans.factory.annotation.Value;
public class User {
  @Value("XXX")
  public String name;
  public void setName(String name) {
      this.name = name;
  }
}

到此这篇关于Spring详解使用注解开发流程的文章就介绍到这了,更多相关Spring注解内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文链接:https://blog.csdn.net/TIANJIAWEN/article/details/124807808

延伸 · 阅读

精彩推荐