使用注解开发Spring

本文介绍了如何在Spring中利用注解进行组件注册、属性注入和作用域设置,包括@Controller、@Service、@Repository和@Component的使用,以及@Value和@Scope在web层的实践。
摘要由CSDN通过智能技术生成

使用注解开发Spring

Spring支持使用注解来开发,但需要引入aop的jar包

maven:

<!-- https://mvnrepository.com/artifact/org.springframework/spring-aop -->
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-aop</artifactId>
    <version>5.3.5</version>
</dependency>

在使用注解开发时,我们还需要在配置文件引入头文件约束:

xmlns:context="http://www.springframework.org/schema/context"

 http://www.springframework.org/schema/context
 http://www.springframework.org/schema/context/spring-context.xsd

还需要再配置中指定注解扫描包,这样Spring就会去扫描特定的包

<!--指定注解扫描包-->
<context:component-scan base-package="com.nicht.pojo"/>

注解方式实现bean

Spring对应不同层,也有对应着不同的注解,他们的效果和功能都一样

  • @Controller:web层
  • @Service:service层
  • @Repository:dao层

主要讲讲web层也就是 @Component注解

@Component("user")
public class User {
   public String name = "孙笑川";
}

**@Component(“user”)**等价于

测试:(调用的情况就和xml情况相同的)

@Test
public void test(){
   ApplicationContext applicationContext =new ClassPathXmlApplicationContext("beans.xml");
   User user =  applicationContext.getBean("user",User.class);
   System.out.println(user.name);
}

用注解方式实现属性注入

用注解实现属性注入依靠**@Value注解**,且可以不用添加对应属性的set方法

@Value一般配置在相对应的属性上方,其为类内部注解。

实体类:

@Component("user")
public class User {
   @Value("孙笑川")
   public String name;
}

如果有对应的set方法,@Value注解也可以写在set方法上面

@Component("user")
public class User {
   
   public String name;
   
	@Value("孙笑川")
	public void setName(String name){
		this.name = name;
	}
}

Scope(作用域)

在创建多个相同对象时,Spring默认只会创建一个对象,所以多个实例的哈希码也都是一样,也就是所谓的单例模式

但我们可以**手动修改Scope(作用域)**来改变Spring创建对象的情况,使用@Scope注解来实现,写在类上,是类级别注解

  • singleton:单例模式,关闭工厂 ,所有的对象都会销毁。创建唯一对象,哈希码相同
  • prototype:多例模式,关闭工厂 ,所有的对象不会销毁。内部的垃圾回收机制会回收。可根据实例创建多个对象,哈希码不同
@Controller("user")
@Scope("prototype")
public class User {
   @Value("孙笑川")
   public String name;
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值