Spring之Bean管理------注解方式

摘要:
在相关类上添加注释@Component(value=“userDao”)publicclassUserDaoImplementsUserDao{@OverridepublicvoidsayHello(){System.out.println(“HelloSpringAnnotation…”)。Spring提供了@Component的三个派生注释:

编写测试类

1,编写相关的类

public interface UserDao {
public void sayHello();
}
public class UserDaoImpl implements UserDao {
@Override
public void sayHello() {
System.out.println("Hello Spring...");
} 
}

2,配置注解扫描

<!-- 指定扫描bean包下的所有类中的注解.base-package属性是需要注解的类所在包的包名
  注意:扫描包时会扫描指定报下的所有子孙包,这个bean包是我自己创建的.

 -->
<context:component-scan base-package="bean"></context:component-scan>

3,在相关的类上添加注解

@Component(value="userDao")
public class UserDaoImpl implements UserDao {
@Override
public void sayHello() {
System.out.println("Hello Spring Annotation...");
}
}

4,编写测试类

@Test
public void demo2() {
ApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml");//applicationContext.xml是在src下
UserDao userDao = (UserDao) applicationContext.getBean("userDao");
userDao.sayHello();
}

Spring 的 Bean 管理的中常用的注解

1 ,@Component:组件.(作用在类上)

Spring 中提供@Component 的三个衍生注解:(功能目前来讲是一致的)

* @Controller :WEB 层

* @Service :业务层

* @Repository :持久层

这三个注解是为了让标注类本身的用途清晰,Spring 在后续版本会对其增强

2,属性注入的注解:(使用注解注入的方式,可以不用提供 set 方法.)

@Value :用于注入普通类型.

@Autowired :自动装配: * 默认按类型进行装配. * 按名称注入: 如果有同一个类有两个已经注解的实例,会比较麻烦

@Qualifier:强制使用名称注入.

@Resource 相当于: @Autowired 和@Qualifier 一起使用.

3,Bean 的作用范围的注解:

@Scope:

singleton:单例

prototype:多例

4,Bean 的生命周期的配置:

@PostConstruct :相当于 init-method

@PreDestroy :相当于 destroy-method

比如:

@Component("User")
@Scope(scopeName="singleton")//指定对象的作用范围singleton是单例,prototype是多例
public class User {
    
    @Value(value="***")
    private String name;
    @Value(value="19")
    private Integer age;
    //@Autowired//自动装配
    //@Qualifier("car2")
    
    @Resource(name="car2")
    private Car car;
//中间省略了get和set方法 @PostConstruct
public void init(){ System.out.println("初始化方法"); } @PreDestroy public void destory(){ System.out.println("销毁方法"); } }

免责声明:文章转载自《Spring之Bean管理------注解方式》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇VS 对话框控件的Tab顺序问题设置redis访问密码下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

那些年踩过的WebAPI的坑(一)

Visual Studio创建一个web项目, 在下一步的时候创建WebAPI项目的时候勾选web API之后,系统会生成一个web项目。 首先看一下webapi的路由配置,在App_start/webapiconfig.cs中,可以看到如下代码: 1 public static void Register(HttpConfiguration con...

【转载】BootStrap表格组件bootstrap table详解

(转载,来源“脚本之家”,作者不详) 一、Bootstrap Table的引入 关于Bootstrap Table的引入,一般来说还是两种方法: 1、直接下载源码,添加到项目里面来。由于Bootstrap Table是Bootstrap的一个组件,所以它是依赖Bootstrap的,我们首先需要添加Bootstrap的引用。 2、使用我们神奇的Nuget打开...

jdbc 连接数据库

1.什么是jdbc? 答:jdbc是java data base connection 的简写,即java与数据库的连接,是java与数据库之间进行数据交互的工具,书上解释为java访问数据库的API。jdbc是一个轻量级的连接封装,适用于多种数据库,如:oracle、sql server,mysql等等。hibernate则是对jdbc的再封装。 2、j...

spring boot2.0.4集成druid,用jmeter并发测试工具调用接口,druid查看监控的结果

一、项目介绍(本项目用的编程语言是jdk8,项目源码: https://github.com/zhzhair/mybatis-druid-spring-boot.git)   1.引入pom依赖:   <dependencies>     <dependency>       <groupId>org.springfra...

C#基本面试题

重写和重载 重写: 要求:(三大同)参数相同,方法名相同,返回值相同 关键字:基类函数用virtual修饰,派生类用override修饰 注意:不能重写非虚方法或静态方法 重载: 要求:在同一作用域,可以存在相同的函数名,不同参数列表的函数,这组函数称为重载函数 其他 WebAPI和MVC的区别 1、MVC主要用于建站,WebAPI主要用于构建http...

自动化中Java面试题

1、面向对象的特征有哪些方面?答:面向对象的特征主要有以下几个方面:- 抽象:抽象是将一类对象的共同特征总结出来构造类的过程,包括数据抽象和行为抽象两方面。抽象只关注对象有哪些属性和行为,并不关注这些行为的细节是什么。- 继承:继承是从已有类得到继承信息创建新类的过程。提供继承信息的类被称为父类(超类、基类);得到继承信息的类被称为子类(派生类)。继承让变...