Spring详解使用注解开发流程
在Spring4之后 要使用注解开发 必须保证aop包导入了
使用注解需要导入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
注解的作用域@Scope
@Scope 放在类上,默认是单例模式
@Scope(prototype)是原型模式,每次创建的都是一个新的对象
其作用等价于
补充:
@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注解内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
spring schedule配置多任务动态cron(增删启停)
这篇文章主要介绍了spring schedule配置多任务动态cron(增删启停),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2021-03-03如何使用axis调用WebService及Java WebService调用工具类
Axis是一个基于Java的Web服务框架,可以用来调用Web服务接口,下面这篇文章主要给大家介绍了关于如何使用axis调用WebService及Java WebService调用工具类的相关资料,需要的朋友可以参考下2023-04-04基于logback 实现springboot超级详细的日志配置
java web 下有好几种日志框架,比如:logback,log4j,log4j2(slj4f 并不是一种日志框架,它相当于定义了规范,实现了这个规范的日志框架就能够用 slj4f 调用)。这篇文章主要介绍了基于logback springboot超级详细的日志配置,需要的朋友可以参考下2019-06-06
最新评论