温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

java中spring都有哪些注解

发布时间:2020-11-02 14:47:32 来源:亿速云 阅读:160 作者:小新 栏目:编程语言

这篇文章将为大家详细讲解有关java中spring都有哪些注解,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

spring 注解可以减少xml配置;注释配置相对于 XML 配置具有很多的优势:它可以充分利用 Java 的反射机制获取类结构信息,这些信息可以有效减少配置的工作。如使用 JPA 注释配置 ORM 映射时,我们就不需要指定 PO 的属性名、类型等信息,如果关系表字段和 PO 属性名、类型都一致,您甚至无需编写任务属性映射信息——因为这些信息都可以通过 Java 反射机制获取。

使用注解之前要开启自动扫描功能

其中base-package为需要扫描的包(含子包)。

<context:component-scan base-package="cn.test"/>

@Configuration把一个类作为一个IoC容器,它的某个方法头上如果注册了@Bean,就会作为这个Spring容器中的Bean。

@Scope注解 作用域

@Lazy(true) 表示延迟初始化

@Service用于标注业务层组件、

@Controller用于标注控制层组件(如struts中的action)

@Repository用于标注数据访问组件,即DAO组件。

@Component泛指组件,当组件不好归类的时候,我们可以使用这个注解进行标注。

@Scope用于指定scope作用域的(用在类上)

---------------jsr250----

@PostConstruct用于指定初始化方法(用在方法上)

@PreDestory用于指定销毁方法(用在方法上)

@Resource 默认按名称装配,当找不到与名称匹配的bean才会按类型装配。

----------

@DependsOn:定义Bean初始化及销毁时的顺序

@Primary:自动装配时当出现多个Bean候选者时,被注解为@Primary的Bean将作为首选者,否则将抛出异常

@Autowired 默认按类型装配,如果我们想使用按名称装配,可以结合@Qualifier注解一起使用。如下:

@Autowired @Qualifier("personDaoBean") 存在多个实例配合使用

@PostConstruct 初始化注解

@PreDestroy 摧毁注解 默认 单例  启动就加载??

@Async异步方法调用,需要添加以下代码:

<bean id="taskExecutor" class="org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor">
<property name="corePoolSize" value="10"/>
<property name="maxPoolSize" value="300"/>
</bean>
<task:annotation-driven/>

为了让@Async注解能够生效,还需要在Spring Boot的主程序中配置@EnableAsync

在Spring中,基于@Async标注的方法,称之为异步方法;

这些方法将在执行的时候,将会在独立的线程中被执行,

调用者无需等待它的完成,

即可继续其他的操作。

@Async所修饰的函数不要定义为static类型,这样异步调用不会生效

@ComponentScan(basePackages = "com.xzc.")

@EnableAutoConfiguration

@SpringBootApplication

@PropertySource({"classpath:application.properties", "classpath:xzc.properties"})

@ImportResource("classpath:ws-client.xml")

@EnableRedisHttpSession

@EnableAspectJAutoProxy

@EnableCaching

@EnableAsync

@Configuration

@EnableScheduling 启动定时任务

@Entity注释指名这是一个实体Bean

@SuppressWarnings注解?

1、 @PathVariable

当使用@RequestMapping URI template 样式映射时, 即 someUrl/{paramId}, 这时的paramId可通过 @Pathvariable注解绑定它传过来的值到方法的参数上

@Controller  
@RequestMapping("/owners/{ownerId}")  
public class RelativePathUriTemplateController {  

@RequestMapping("/pets/{petId}")  
public void findPet(@PathVariable String ownerId, @PathVariable String petId, Model model) {      
    // implementation omitted  
    }  
}

上面代码把URI template 中变量 ownerId的值和petId的值,绑定到方法的参数上。

若方法参数名称和需要绑定的uri template中变量名称不一致,需要在@PathVariable("name")指定uri template中的名称。

Spring 4.2新特性-使用@Order调整配置类加载顺序

----------------------------------------------------

lombok 简化java代码注解 理解

lombok 注解:

lombok 提供的注解不多,可以参考官方视频的讲解和官方文档。

Lombok 注解在线帮助文档:http://projectlombok.org/features/index.

下面介绍几个我常用的 lombok 注解:

  @Data   :注解在类上;提供类所有属性的 getting 和 setting 方法,此外还提供了equals、canEqual、hashCode、toString 方法

  @Setter:注解在属性上;为属性提供 setting 方法

  @Getter:注解在属性上;为属性提供 getting 方法

  @Log4j :注解在类上;为类提供一个 属性名为log 的 log4j 日志对象

  @NoArgsConstructor:注解在类上;为类提供一个无参的构造方法

  @AllArgsConstructor:注解在类上;为类提供一个全参的构造方法

==================================

关于java中spring都有哪些注解就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI