Spring的基础注解
Spring的基础注解
1、注解的概述
注解是为了便于程序的调试而用于代替配置文件的一种程序语法,与配置文件具有互换性。通常基于注解编程的程序更加简洁。
(注:使用Spring注解必须导入aop包)
2、Spring组件注解
Spring组件注解作用在类上,用于声明该类为组件类。在Spring 框架启动时,自动扫描组件类创建实例对象并存放在Spring容器中。Spring的组件注解有
①@Controller:声明表示层的组件类; ②@Service:声明服务层的组件类;
③@Repository:声明持久层的组件类; ④@Component:声明其它的组件类。
(注:①Spring的4个组件注解在功能上是没有差别的,交换使用结果相同;②组件类的对象名默认为类名的首字母小写形式,组件注解的value属性可以设置对象名)
3、<context:component-scan>标签——扫描器的配置
——base-package属性:指定需要扫描的包。
<context:component-scan base-package="cn"/>
4、Spring依赖注入的注解
(1)@Autowired注解——自动注入容器的对象
①在属性上注入:注入该属性; ②在方法上注入:注入该方法的参数; ③在构造方法上注入:注入该构造方法的参数;
(注:①@Autowired 注解默认允许注入的对象为空,可以通过equired属性设置;②添加@Autowired 注解的方法和构造方法在项目启动的时候将自动执行;③无参的方法和构造方法不支持使用@Autowired注解)
(2)@Qualifier注解——设置注入的对象名
——value属性:指定注入 Spring 容器中的对象名;
(注:@Autowired没有指定对象名的属性,只能通过@Qualifier注解指定容器中的对象名)
(3)@Resource注解——注入容器的对象
——name属性:指定注入 Spring 容器中的对象名;
(注:①@Resource注解在功能上是@Autowired和@Qualifier注解的合并注解;②@Resource不能在构造方法上注入)
(4)@Value注解——注入标量数据
——@Value注解用于注入标量数据,并支持注入Properties文件的键值对。
public class Manager {
@Value("zhangsan")
private String name;
@Value("${manager.age}")
private int age;
@Autowired
@Qualifier(value="customer01")
private Customer customer = null;
@Autowired(required=false)
public Manager(Customer customer) {
super();
this.customer = customer;
}
@Resource(name="customer01")
public void saveCustomer(Customer customer) {
this.customer = customer;
}
}
①@Scope注解——指定示例对象的生命周期
——value属性:设置创建的Spring对象的生命周期;
②@PostConstruct注解——指定Spring对象的初始化方法;
③@PreDestroy注解——指定Spring对象的销毁方法。
@Service
@Scope(value="singleton")
public class CustomerService { @PostConstruct
public void init(){
System.out.println("--对象初始化--");
} @PreDestroy
public void destroy(){
System.out.println("--对象销毁--");
}
}
6、Spring纯注解配置
①@Configuration注解
该注解标示当前类是Spring 的配置类,该类用于代替Spring的XML配置文件;
②@ComponentScan注解
该注解用于配置扫描Spring组件类的路径;
——value/basePackages属性:用于指定要扫描的包;
③@PropertySource注解
该注解用于配置需要加载的Properties文件;
——encoding属性:指定编码格式;
——value属性:指定 properties 文件位置;
④@Bean注解
该注解用于将通过方法创建的对象存放在Spring容器中;
——name属性:设置对象名;
⑤@Import注解
该注解用于导入其他配置类;
——value属性:指定配置类。
@Configuration
@ComponentScan(basePackages="cn")
@Import(value=Config.class)
@PropertySource(encoding="UTF-8",value="classpath:sys.properties")
public class Myconfiguration { @Bean
public Date getDate() {
return new Date();
} }
(注:①基于纯注解声明的对象将存放在AnnotationConfigApplicationContext容器中②在需要指定文件的路径时,当文件在类路径下时其路径为“classpath:[文件名]”)
7、获取Spring注解容器的对象
@Test
public void springTest() { //1、创建spring容器
AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(Myconfiguration.class); //2、获取Customer实例对象
Customer customer= context.getBean("customer", Customer.class); customer.save(); //3、调用对象的方法 context.close(); //4、关闭Spring容器,释放资源
}
Junit是单元测试工具,Spring 框架提供test包对 Junit 单元测试工具进行了整合。
①@RunWith注解
——value属性:指定使用的单元测试执行类;
②@ContextConfiguration注解
——classes属性:指定配置类。
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes=Myconfiguration.class)
public class SpringTest{ @Autowired
private Customer customer; @Text
public void springTest() {
customer.save();
} }
———————————————————————————————————————————————————————————————————
The end @ 万有引力+
-
-
-
-
-
Spring的基础注解的更多相关文章
- Spring MVC 基础注解之@RequestMapping、@Controller、(二)
我现在学的是spring4.2 今天主要学习了Spring MVC注解 引入注解可以减少我们的代码量,优化我们的代码. @Controller:用于标识是处理器类: @RequestMapping:请 ...
- Spring的基础配置,以及注解
常用依赖 <dependencies> <!-- https://mvnrepository.com/artifact/org.springframework/spring-webm ...
- Spring MVC常用注解
cp by http://www.cnblogs.com/leskang/p/5445698.html 1.@Controller 在SpringMVC 中,控制器Controller 负责处理由Di ...
- [Spring框架]Spring AOP基础入门总结二:Spring基于AspectJ的AOP的开发.
前言: 在上一篇中: [Spring框架]Spring AOP基础入门总结一. 中 我们已经知道了一个Spring AOP程序是如何开发的, 在这里呢我们将基于AspectJ来进行AOP 的总结和学习 ...
- [Spring框架]Spring AOP基础入门总结一.
前言:前面已经有两篇文章讲了Spring IOC/DI 以及 使用xml和注解两种方法开发的案例, 下面就来梳理一下Spring的另一核心AOP. 一, 什么是AOP 在软件业,AOP为Aspect ...
- spring mvc 基于注解的使用总结
本文转自http://blog.csdn.net/lufeng20/article/details/7598801 概述 继 Spring 2.0 对 Spring MVC 进行重大升级后,Sprin ...
- Spring Boot 基础
Spring Boot 基础 Spring Boot 项目(参考1) 提供了一个类似ASP.NET MVC的默认模板一样的标准样板,直接集成了一系列的组件并使用了默认的配置.使用Spring Boot ...
- Spring MVC 基础
Spring MVC 基础 1.Web MVC基础 MVC的本质是表现层模式,我们以视图模型为中心,将视图和控制器分离出来.就如同分层模式一样,我们以业务逻辑为中心,把表现层和数据访问层代码分离出来是 ...
- spring boot基础 入门
spring boot基础 spring boot 的简单搭建 spring boot 的基本用法 spring boot 基本用法 自动配置 技术集成 性能监控 源码解析 工程的构建 创建一个mav ...
随机推荐
- .net中使用 道格拉斯-普特 抽希轨迹点
Douglas一Peukcer算法由D.Douglas和T.Peueker于1973年提出,简称D一P算法,是目前公认的线状要素化简经典算法.现有的线化简算法中,有相当一部分都是在该算法基础上进行改进 ...
- allegro17.2 gerber 步骤
1.Manufacture -> NC -> Drill Customization... 先点击 Auto generate symbols,出来对话框后点击 YES .然后在Symbo ...
- webpack(3)-管理资源
管理资源:(file-loader 和 url-loader 可以接收并加载任何文件,然后将其输出到构建目录) 加载css:style-loader.css-loader 以style的形式插入到he ...
- python之进程,线程,协程简单理解
进程:资源单位,由操作系统控制调度.正在执行的一个程序或者过程,进程之间不共享资源,进程间通讯手段:管道,队列,信号量等.多用于计算密集型场景,如金融计算 线程:是cpu的最小执行单位,由操作系统控制 ...
- python类与对象-如何创建可管理的对象属性
如何创建可管理的对象属性 问题举例 在面向对象编程中, 我们把方法看作对象的接口, 直接访问对象的属性可能是不安全的,或设计上不够灵活. 但是使用调用方法在形式上不如访问属性简洁. circle.ge ...
- python 开发环境部署
pip 通过google搜索到,2019.4月的版本是19. 需要更换源,否则会挺慢. Windows下更换pip源为清华源 打开appdata文件夹,在资源管理器的地址栏输入%appdata%后回车 ...
- python之单例模式
#单例模式:有时需要写出高性能的类,那么会采用单例模式.通俗的解释就是类只创建一次实例,贯穿整个生命周期,实现了高性能. #1.模块化单例#所谓的模块化就是一个单独的.py文件来存储类,这样就是单例模 ...
- Leetcode: The Maze III(Unsolved Lock Problem)
There is a ball in a maze with empty spaces and walls. The ball can go through empty spaces by rolli ...
- PHP----------php封装的一些简单实用的方法汇总
1.xml转换成array,格式不对的xml则返回false function xml_parser($str){ $xml_parser = xml_parser_create(); i ...
- 【原创】canvas裁剪上传图片异步提交
<!DOCTYPE html> canvas裁剪图片,纯前端 裁剪文件 后台返回获取裁剪后的文件