关于Spring的注解开发

文章介绍了在Spring开发中如何使用注解替代XML配置,包括@Component注解代替<bean>,@Value进行属性注入,以及@Repository、@Service、@Controller等衍生注解的用途。此外,还提到了@Autowired和@Scope等自动装配和作用域管理的注解。
摘要由CSDN通过智能技术生成

在之前的学习中注解都是写在配置文件中,但在实际开发中配置文件一般不会写入注解,所以选择一种更简单的添加注解的方式

实现Spring开发的步骤

一、<bean>怎么添加注解

第一步:导入aop包 如图1-1

 图1-1

第二步:在resource目录下 导入 依赖支持 的配置文件:在之前的文章《spring的依赖》中有写,这里不再赘述

<?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">

    <!--指定要扫描的包 这个包下的注解会生效 "component-scan"扫描组键-->
    <context:component-scan base-package="com.kuang.pojo"/>

    <context:annotation-config/>



</beans>

第三步:为了方便测试这里写了一个User类,理想的输出是“小卜”

注意看注释@Component可以代替<bean>实现

package com.kuang.pojo;

import org.springframework.stereotype.Component;

@Component
//组键的意思 相当于bean注入  <bean id="user" class="com.kuang.pojo.User"/>
public class User {
   public String name = "小卜";
}

 第四步:写测试类 验证是否可以输出理想结果

import com.kuang.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 = (User) context.getBean("user");
        //getbean()方法,但是没有bean,可以用user类中定义的组件,名字是默认小写

        System.out.println(user.name);
    }
}

ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");

 

User user = (User) context.getBean("user");

 

 运行成功

 这就说明@Component可以代替xml中的<bean>实现的相关功能

二、属性如何注入

稍稍修改一下User类

package com.kuang.pojo;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;

@Component
//组键的意思 相当于bean注入  <bean id="user" class="com.kuang.pojo.User"/>
public class User {
   //相当于<property name="name" value="荒">
   @Value("荒")
   public String name;
}

@Value 简直是神技有木有!!!

再也不用

<bean>

        <property....../>

</bean>

很遗憾 这种方法只适用于简单的方法,假设 方法有很多,在xml中配置还是更便捷的

有set方法,可以这样写

@Value("荒")

public void setName(String name){

this.name = name;

}

三、衍生注解

@Component有几个衍生注解,在web开发会按照MVC分成三层

·dao 【@Repository】接口层

·service【@Service】业务层

· controller【@Controller】控制层

以上注解的功能都一样,都是表示将某个类注册到Spring中,装配Bean

四、自动装配

@Autowired

@Qualifier

@Controller

之前的文章有提到 不做赘述 

五、作用域

@Scope

@Scope("singleton") //单一模式

@Scope("prototype")//原型模式

什么是单一模式

https://blog.csdn.net/weixin_57504474/article/details/124494554

什么是原型模式

https://www.runoob.com/design-pattern/prototype-pattern.html

六、小结

xml与注解:

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

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

xml与注解的最佳实践:

        xml用来管理bean

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

        只需要保证 注解生效

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值