Spring的入门学习笔记 (注解)
Spring的bean管理(注解)
注解
1.代码里面特殊标记(ep:@Test),使用注解完成一些相关功能
2.注解写法 @注解名称(属性名称=属性值)
3.可以用在类,方法,属性上都可以
4.Spring里替代部分配置文件,更方便
Spring注解开发的准备工作
导入
1.导入基本jar包
2.导入aop的jar包
创建类,创建方法
创建spring配置文件引入约束
1.做ioc基本功能,引入的约束bean
2.做spring的ioc注解开发,引入新的约束(context)
开始注解扫描
到包里面稻苗类,方法,属性上面是否有注解
<context:component-scan base-package= "创建类所在包的名字"></context:component-scan>
注解创建对象
再创建类上面加上注解即可实现
@Component(Value="user") //等同于<bean id = "user" class = "">
public class User{ public void add(){
system.out.println("add.........") }
}
测试代码如下
public class Test{
@Test
public void testUser(){
ApplicationContext context = new ClassPathXmlApplicationContext("bean1.xml");
User user=(User) context.getBean("user");
System.out.println(user);
user.add();
}
}
输出了地址 还调用了add方法
创建对象有四个注解
1.Component
2.Controller web层
3.Service 业务层
4.Repository 持久层
其实功能方法都一样
注解注入属性
1.autowired
创建service类,创建dao类,在service里
@component(value="userservice")
public class UserService{
//得到dao的对象
@Autowried
private UserDao userDao;
//不需要写set方法 public void add{
system.out.println("add......");
userDao.add();
}
} @component(value="userdao")
public class UserDao{
public void add{
system.out.println("dao......");
}
}
测试
public class Test{
@Test
public void testService(){
ApplicationContext context = new ClassPathXmlApplicationContext("bean1.xml");
User user=(UserService) context.getBean("userService");
userService.add();
}
}
2.@Resource(name= "对象名字")
@resource(name = "userDao")
private UserDao userDao;
注解方式创建dao的对象 value的值
配合文件和注解方式的混合使用
1.创建对象一般都用配置文件实现
2.注入属性用注解的方式来实现
Spring的入门学习笔记 (注解)的更多相关文章
- Spring的入门学习笔记 (AOP概念及操作+AspectJ)
AOP概念 1.aop:面向切面(方面)编程,扩展功能不通过源代码实现 2.采用横向抽取机制,取代了传统的纵向继承重复代码 AOP原理 假设现有 public class User{ //添加用户方法 ...
- Spring.Net 入门学习笔记-----one
一. 基本概念 Spring.Net是一个轻量级的控制反转(Ioc)和面向切面的(Aop)的容器框架: Ioc:控制反转:简单的说就是将创建对象的控制权转交给外部容器(IApplicationC ...
- 【原创】SpringBoot & SpringCloud 快速入门学习笔记(完整示例)
[原创]SpringBoot & SpringCloud 快速入门学习笔记(完整示例) 1月前在系统的学习SpringBoot和SpringCloud,同时整理了快速入门示例,方便能针对每个知 ...
- dubbo入门学习笔记之入门demo(基于普通maven项目)
注:本笔记接dubbo入门学习笔记之环境准备继续记录; (四)开发服务提供者和消费者并让他们在启动时分别向注册中心注册和订阅服务 需求:订单服务中初始化订单功能需要调用用户服务的获取用户信息的接口(订 ...
- spring cloud(学习笔记)高可用注册中心(Eureka)的实现(二)
绪论 前几天我用一种方式实现了spring cloud的高可用,达到两个注册中心,详情见spring cloud(学习笔记)高可用注册中心(Eureka)的实现(一),今天我意外发现,注册中心可以无限 ...
- Spring源码学习笔记9——构造器注入及其循环依赖
Spring源码学习笔记9--构造器注入及其循环依赖 一丶前言 前面我们分析了spring基于字段的和基于set方法注入的原理,但是没有分析第二常用的注入方式(构造器注入)(第一常用字段注入),并且在 ...
- Spring 源码学习笔记10——Spring AOP
Spring 源码学习笔记10--Spring AOP 参考书籍<Spring技术内幕>Spring AOP的实现章节 书有点老,但是里面一些概念还是总结比较到位 源码基于Spring-a ...
- Spring 源码学习笔记11——Spring事务
Spring 源码学习笔记11--Spring事务 Spring事务是基于Spring Aop的扩展 AOP的知识参见<Spring 源码学习笔记10--Spring AOP> 图片参考了 ...
- Spring源码学习笔记12——总结篇,IOC,Bean的生命周期,三大扩展点
Spring源码学习笔记12--总结篇,IOC,Bean的生命周期,三大扩展点 参考了Spring 官网文档 https://docs.spring.io/spring-framework/docs/ ...
随机推荐
- Python基础-进程和线程
一.进程和线程的概念 首先,引出“多任务”的概念:多任务处理是指用户可以在同一时间内运行多个应用程序,每个应用程序被称作一个任务.Linux.windows就是支持多任务的操作系统,比起单任务系统它的 ...
- Storm Flow
A Stream represents the core data model in Trident, and can be thought of as a "stream" of ...
- Web.py报错:OSError: No socket could be created -- (('0.0.0.0', 8080):
web.py报错 Python代码: import web urls = ( '/(.*)', 'hello' ) app = web.application(urls, globals()) cla ...
- JDK/bin下工具列表说明
JDK/bin下工具列表说明 appletviewer.exe:一种执行HTML文件上的Java小程序类的Java浏览器 apt.exe:注解处理工具(Annotation Processing To ...
- myEclipse mybatis自动生成工具xml配置
<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE generatorConfiguration ...
- RabbitMq ack 与 nack
1.ack 移除 2.nack 移除再次发送队列
- C++实现线性表的链接存储结构(单链表)
将线性表的抽象数据类型定义在链接存储结构下用C++的类实现,由于线性表的数据元素类型不确定,所以采用模板机制. 头文件linklist.h #pragma once #include <iost ...
- HTML5新增功能
HTML5日期输入类型(date) 1.HTML5规范里只规定date新型input输入类型 HTML5里的dateinput类型给了给了浏览器实现原生日历的机会,从此之后,JavaScript版的日 ...
- redis外网连接的一些坑
前言 在使用阿里云和腾讯云的redis 可以减少很大的维护量.但是在我们的业务场景中遇到了一个情况,阿里和腾讯的redis均不支持外网访问.因此,正好帮人解决一个问题,就拿出来分享一下. 阿呆的故事 ...
- Hibernate、Mybatis与Spring Data JPA
从零开始集成Springboot+MyBatis+JPA https://www.jianshu.com/p/e14c4a6f6871 MyBatis 与Hibernate的区别 http://xhr ...