Spring之使用注解开发

在Spring中,除了在XML文件中用bean标签进行bean注入容器,还可以利用注解的方式将bean的注入Spring容器。
一、使用注解方式的配置:
首先需要引入AOP的包才可以,有时候哪里都没问题,但是就是报错的话,有可能就是没有AOP的jar包的问题,在maven中检查一下是否缺少该jar包。然后,在xml中的配置如下,主要就是增加了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
       http://www.springframework.org/schema/beans/spring-beans.xsd
       http://www.springframework.org/schema/context
       http://www.springframework.org/schema/context/spring-context.xsd">

</beans>

二、bean注入:之前用XML文件方式注入bean的时候,都是在xml中写一个个的bean标签进行配置,现在,导入注解的约束后,在xml中就只需要写入注解需要扫描的包就行了:

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

比如上图的示例中,我导入了com.dao包,因此,我该包中的所有类,就可以通过注解方式注入bean,直接写Java代码中,写在类头上:(相当于配置文件中 id=“user” class=这个类)

@Component("user")
public class User {
   public String name = "小明";
}

三、属性注入:不同于DI注入,必须要set方法,注解可以直接在属性上面通过value赋值:

@Component("user")
public class User {
   @Value("小明")
   public String name;
}

或者如果有set的话,在可以在set上用value:

@Component("user")
public class User {
   public String name;
   @Value("小明")
   public void setName(String name) {
       this.name = name;

四、补充信息:
@Controller:web层
@Service:service层
@Repository:dao层
这三个注解,很奇怪,是MVC中用的注解,猛地一看,感觉似乎各自有各自的特点,其实,他们本质都是Component,一样的作用,只不过在MVC中给另外起个名字而已,其实可以都用@Component。
@scope:
singleton:单例模式,默认是单例。
prototype:可以创建多个不同对象。

@Controller("user")
@Scope("prototype")
public class User {
   @Value("小明")
   public String name;
}

总结

XML和注解方式的区别:
XML:结构清晰,维护方便,适用任何情况。
注解:开发简单。
因此,推荐xml和注解结合开发,用xml完成bean注入,用注解完成属性注入。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值