Spring中注解的写法

1.xml文件中的spring注解约束

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

2.使用注解与不用注解配置xml文件

曾经XML的配置(不使用注解)

<bean id="name(自己起)" class="要创建对象的类的全限定类名"
scope="作用范围"  init-method="初始方法的方法名" destroy-method="销毁方法的方法名">
<property name=""  value="" | ref=""></property>
</bean>

现在XML的配置(使用注解)

//告知spring在创建容器时要扫描的包,配置所需要的标签不是在beans的约束中,而是一个名称为context名称空间和约束中
<context:component-scan base-package="需要使用SPring注解创建对象的类所在的包的名称"></context:component-scan>

3.Spring中注解的介绍

(1)用于创建对象的注解
他们的作用就和在XML配置文件中编写一个bean标签实现的功能是一样的
@Component:
作用:用于把当前类对象存入spring容器中
属性:value:用于指定bean的id。当我们不写时,它的默认值是当前类名,且首字母改小写。
@Controller:一般用在表现层
@Service:一般用在业务层
@Repository:一般用在持久层
以上三个注解他们的作用和属性与Component是一模一样。他们三个是spring框架为我们提供明确的三层使用的注解,使我们的三层对象更加清晰

@Component"aImpl"//当只有一个属性使value可以省略
public class AnnotationtImpl {}

(2)用于依赖注入的注解
他们的作用就和在xml配置文件中的bean标签中写一个property标签或constructor-arg标签的作用是一样的
关于使用注解进行依赖注入已经在我的另一篇博客中写到Srping中的依赖注入(DI)详解有需要的可以跳转查看
(3)用于改变作用范围的
他们的作用就和在bean标签中使用scope属性实现的功能是一样的
@Scope
作用:用于指定bean的作用范围
属性:value:指定范围的取值。
常用取值:singleton(单例对象) ,prototype(多例对象)

@Component//属性可以省略,此时id默认为类名且首字母小写
@Scope("prototype")//当不写@scope注解时默认值为singleton(单例对象)
public class AnnotationtImpl {}

(4)与生命周期有关的注解
他们的作用就和在bean标签中使用init-method属性和destroy-method属性实现的功能是一样的
需要注意的是想要使用与生命周期有关的注解需要导入annotation包才可以使用
@PostConstruct 作用:用于指定初始化方法
@PreDestroy 作用:用于指定销毁方法(Spring只能销毁单例对象)

@Component//属性可以省略,此时id默认为类名且首字母小写
@Scope("prototype")//当不写@scope注解时默认值为singleton(单例对象)
public class AnnotationtImpl {

@PostConstruct
public void  init(){
    System.out.println("初始化方法执行了");
   }

@PreDestroy
public void  destroy(){
    System.out.println("销毁方法执行了");
    }
}

(5)其他注解
5.1@Configuration
作用:指定当前类是一个配置类
细节:当配置类作为AnnotationConfigApplicationContext对象创建的参数时,该注解可以不写。
5.2@ComponentScan
作用:用于通过注解指定spring在创建容器时要扫描的包
属性:value和basePackages。他俩的作用是一样的,都是用于指定创建容器时要扫描的包。
我们使用此注解就等同于在xml中配置了:
<context:component-scan base-package=“com.itheima”></context:component-scan>

5.3@Bean
作用:用于把当前方法的返回值作为bean对象存入spring的ioc容器中
属性:name:用于指定bean的id。当不写时,默认值是当前方法的名称
细节:当我们使用注解配置方法时,如果方法有参数,spring框架会去容器中查找有没有可用的bean对象。查找的方式和@Autowired注解的作用是一样的
5.4@Import
作用:用于导入其他的配置类
属性:value:用于指定其他配置类的字节码。
当我们使用Import的注解之后,有Import注解的类就父配置类,而导入的都是子配置类
5.5@PropertySource
作用:用于指定properties文件的位置
属性:value:指定文件的名称和路径。
关键字:classpath,表示类路径下

有不对的地方望各位大佬指教

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值