Java Spring的使用注解开发详解

目录
  • 使用注解开发
    • 1.bean
    • 2.属性如何注入
    • 3.衍生的注解
    • 4.自动装配
    • 5.作用域
    • 6.小结
  • 代码show
    • 1.新建一个模块:
    • 2.新建pojo包及类
    • 3.新建dao包及类
    • 4.新建service包及类
    • 5.新建controller包及类
    • 6.新建配置文件applicationContext.xml
    • 7.测试
  • 彩蛋
  • 总结

使用注解开发

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

1.bean

2.属性如何注入

//等价于<bean id="user" class="com.gongyi.pojo.User"/>
//@Component组件
@Component
public class User {
    // 相当于<property name="name" value="gongyi"/>
    @Value("gongyi")
    public String name;
    //@Value("muzi")
    public void setName(String name) {
        this.name = name;
    }
}

3.衍生的注解

@Component有几个衍生注解,我们在web开发中,会按照mvc三层架构分层!

  • dao【@Repository】
  • service【@Service】
  • controller【@Controller】

这四个注解功能都是一样的,都是代表将某个类注册到spring中,装配bean

4.自动装配

- Autowired:自动装配通过类型。名字
    如果Autowired不能唯一自动装配上属性,则需要通过 @Qualifier(value = "xxx")
- @Nullable 字段标记了这个注解,说明这个字段可以为null
- Resource:自动装配通过名字。类型

5.作用域

@Component
@Scope("singleton")
public class User {
    // 相当于<property name="name" value="gongyi"/>
    @Value("gongyi")
    public String name;
    //@Value("muzi")
    public void setName(String name) {
        this.name = name;
    }
}

6.小结

xml与注解:

  • xml更加万能,适用于任何场合,维护简单方便
  • 注解 不是自己类使用不了(比如DataSource类),维护相对复杂

xml与注解最佳实践:

  • xml用来管理bean
  • 注解只负责完成属性的注入
  • 我们在使用的过程中,只需要注意一个问题:必须让注解生效,就需要开启注解的支持
<!--指定要扫描的包,这个包下的注解就会生效-->
<context:component-scan base-package="com.gongyi"/>
<!--开启注解的支持-->
<context:annotation-config/>

代码show

代码结构图:

1.新建一个模块:

spring-06-anno

2.新建pojo包及类

//等价于<bean id="user" class="com.gongyi.pojo.User"/>
//@Component组件
@Component
@Scope("singleton")
public class User {
    // 相当于<property name="name" value="gongyi"/>
    @Value("gongyi")
    public String name;
    //@Value("muzi")
    public void setName(String name) {
        this.name = name;
    }
}

3.新建dao包及类

@Repository
public class UserDao {
}

4.新建service包及类

@Service
public class UserService {
}

5.新建controller包及类

@Controller
public class UserController {
}

6.新建配置文件applicationContext.xml

<?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.gongyi"/>
    <!--开启注解的支持-->
    <context:annotation-config/>
</beans>

7.测试

public class MyTest {
    public static void main(String[] args) {
        ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
        User user = (User) context.getBean("user");
        System.out.println(user.name);
    }
}

彩蛋

1.被spring托管的类在idea中的显示

1)未被托管前

2)配置托管

3)托管后

总结

本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注我们的更多内容!

(0)

相关推荐

  • Spring MVC注解式开发使用详解

    MVC注解式开发即处理器基于注解的类开发, 对于每一个定义的处理器, 无需在xml中注册. 只需在代码中通过对类与方法的注解, 即可完成注册. 定义处理器 @Controller: 当前类为处理器 @RequestMapping: 当前方法为处理器方法, 方法名随意, 对于请求进行处理与响应. @Controller public class MyController { @RequestMapping(value = "/hello.do") public ModelAndView

  • 详解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

  • Java Spring框架的注解式开发你了解吗

    目录 1.Spring框架的注解式开发 1.1开启注解扫描配置 1.2实例化相关注解 1.3控制对象的创建次数的注解 1.4注入相关的注解 1.5控制事务的相关注解 总结 1. Spring框架的注解式开发 # Spring框架的注解式(Annotation)开发 1. 注解式开发 定义:通过Spring框架提供的一系列注解来完成项目中快速开发 注解:Annotation是java中一种特殊的类 类似于interface 使用时:@注解类名(属性=参数) @Param(Mybatis中做参数绑定

  • Java Spring详解如何配置数据源注解开发以及整合Junit

    目录 Spring数据源的配置 数据源(连接池)的作用 数据源的开发步骤 手动创建数据源 Spring注解开发 Spring原始注解 Spring新注解 Spring整合Junit Spring集成Junit步骤 Spring数据源的配置 数据源(连接池)的作用 数据源(连接池)是提高程序性能如出现的 事先实例化数据源,初始化部分连接资源 使用连接资源时从数据源中获取 使用完毕后将连接资源归还给数据源 常见的数据源(连接池):DBCP.C3PO.BoneCP.Druid等 数据源的开发步骤 1.

  • 带你详细了解Spring Security的注解方式开发

    目录 默认情况下,不会开启注解,如果想用注解,需要开启注解支持. 总结 默认情况下,不会开启注解,如果想用注解,需要开启注解支持. 在启动类上开启: @EnableGlobalMethodSecurity(securedEnabled = true) @SpringBootApplication @ComponentScan(basePackages = {"com.example"}) // 开启springSecurity注解支持 @EnableGlobalMethodSecuri

  • Java之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&

  • Java Spring的使用注解开发详解

    目录 使用注解开发 1.bean 2.属性如何注入 3.衍生的注解 4.自动装配 5.作用域 6.小结 代码show 1.新建一个模块: 2.新建pojo包及类 3.新建dao包及类 4.新建service包及类 5.新建controller包及类 6.新建配置文件applicationContext.xml 7.测试 彩蛋 总结 使用注解开发 在Spring4之后,要使用注解开发,必须要保证aop的包导入了 使用注解需要导入context的约束,增加注解的支持 <?xml version=&quo

  • Java Mybatis框架多表操作与注解开发详解分析

    目录 一对一查询 多对多查询 Mybatis的注解开发 Mybatis的增删查改 MyBatis的注解实现复杂映射开发 一对一查询 一对一查询的模型 用户表和订单表的关系为,一个用户有多个订单,一个订单只从属于一个用户. 一对一查询的需求:查询一个订单,与此同时查询出该订单所属的用户 一对一查询的语句 对应的sql语句: select * from orders o,user u where o.uid=u.id;查询的结果如下: 创建Order和User实体 创建OrderMapper接口 p

  • Spring入门到精通之注解开发详解

    目录 Spring原始注解 DI 依赖注入的注解实现方式 Spring新注解 @Configuration @ComponentScan @Import @PropertySource @value @Bean Spring整合Junit 原始Junit测试Spring的问题 上述问题解决思路 Spring集成Junit步骤 Spring集成Junit代码实现 Spring原始注解 Spring是轻代码而重配置的框架,配置比较繁重,影响开发效率,所以注解开发是一种趋势,注解代替xml配置文件可以

  • Java Spring Boot消息服务万字详解分析

    目录 消息服务概述 为什么要使用消息服务 异步处理 应用解耦 流量削峰 分布式事务管理 常用消息中间件介绍 ActiveMQ RabbitMQ RocketMQ RabbitMQ消息中间件 RabbitMQ简介 RabbitMQ工作模式介绍 Work queues(工作队列模式) Public/Subscribe(发布订阅模式) Routing(路由模式) Topics(通配符模式) RPC Headers RabbitMQ安装以及整合环境搭建 安装RabbitMQ 下载RabbitMQ 安装R

  • Java Spring MVC获取请求数据详解操作

    目录 1. 获得请求参数 2. 获得基本类型参数 3. 获得POJO类型参数 4. 获得数组类型参数 5. 获得集合类型参数 6. 请求数据乱码问题 7. 参数绑定注解 @requestParam 8. 获得Restful风格的参数 9. 自定义类型转换器 1.定义转换器类实现Converter接口 2.在配置文件中声明转换器 3.在<annotation-driven>中引用转换器 10. 获得Servlet相关API 11. 获得请求头 11.1 @RequestHeader 11.2 @

  • Java Spring之@Async原理案例详解

    目录 前言 一.如何使用@Async 二.源码解读 总结 前言 用过Spring的人多多少少也都用过@Async注解,至于作用嘛,看注解名,大概能猜出来,就是在方法执行的时候进行异步执行. 一.如何使用@Async 使用@Async注解主要分两步: 1.在配置类上添加@EnableAsync注解 @ComponentScan(value = "com.wang") @Configuration @EnableAsync public class AppConfig { } 2.在想要异

  • Java Spring AOP之PointCut案例详解

    目录 一.PointCut接口 二.ClassFilter接口 三.MethodMatcher接口 总结 一.PointCut接口 /* * Copyright 2002-2012 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with

  • Java Spring动态生成Mysql存储过程详解

    一. 背景 由于公司业务需要动态配置一些存储过程来生成数据,之前尝试过使用jpa来完成,或多或少都存在一些问题,最后使用了spring的Jdbctemplate. 二. 环境 1.此随笔内容基于spring boot项目 2.数据库为mysql 5.7.9版本 3.jdk 版本为1.8 三. 说明 说明:为方便表示,下列存储过程在代码中的表示我称之为接口配置 四. 内容 1.定义接口和接口参数bean: 1)接口配置bean: @Entity @Table(name="qt_interface&

  • java Spring MVC4环境搭建实例详解(步骤)

    spring WEB MVC框架提供了一个MVC(model-view-controller)模型-视图-控制器的结构和组件,利用它可以开发更灵活.松耦合的web应用.MVC模式使得整个服务应用的各部分(控制逻辑.业务逻辑.UI界面展示)分离开来,使它们之间的耦合性更低. Model 模型层封装了整个应用程序的数据对象并且将会持久化POJO View 视图层负责渲染模型层的数据,一般最终使用HTML展示到用户浏览器或移动设备终端 Controller 控制层负责处理用户的请求.构建合适的模型数据

  • java javax.annotation.Resource注解的详解

    java 注解:java javax.annotation.Resource  当我们在xml里面为类配置注入对象时,会发现xml文件会越来越臃肿,维护起来很麻烦.这时候我们可以使用注解这种机制来为类配置注入对象. Java为我们提供了 javax.annotation.Resource这个注解. spring框架提供了org.springframework.beans.factory.annotation.Autowired. 一般情况下我们使用 javax.annotation.Resour

随机推荐