Spring注解:
使用注解之前要开启自动扫描功能,其中base-package为需要扫描的包(含子包)。
1.@Resource 默认按名称装配,当找不到与名称匹配的bean才会按类型装配。
1.@Resource的装配顺序:
1).@Resource后面没有任何内容,默认通过name属性去匹配bean,找不到再按type去匹配;
2).指定了name或者type则根据指定的类型去匹配bean;
3).指定了name和type则根据指定的name和type去匹配bean,任何一个不匹配都将报错;
2.@Autowired和@Resource两个注解的区别:
1).@Autowired默认按照byType方式进行bean匹配,@Resource默认按照byName方式进行bean匹配;
2).@Autowired是Spring的注解,@Resource是J2EE的注解,这个看一下导入注解的时候这两个注解的包名就一清二楚了;
Spring属于第三方的,J2EE是Java自己的东西,因此,建议使用@Resource注解,以减少代码和Spring之间的耦合。
2.@Autowired 默认按类型装配,如果我们想使用按名称装配,可以结合@Qualifier注解一起使用。如(3):
1.@Autowired注解要去寻找的是一个Bean,当指定的Bean定义不存在时,自然就不是一个Bean,Spring容器也就找不到;
如果属性找不到时不想让Spring容器抛出异常,而是显示null,可以将@Autowired注解的required属性设置为false即可:
3.@Autowired @Qualifier("personDaoBean") 存在多个实例配合使用
4.@Repository 用于标注数据访问组件,即DAO组件;
5.@Scope 用于指定scope作用域的(用在类上):
1.singleton:默认单例模式,即:Spring IOC容器中只会存在一个共享的bean实例,并且所有对bean的请求,只要id与该bean定义
相匹配,则只会返回bean的同一实例,一个容器对应一个bean;
2.prototype 表示多例:每一次请求(将其注入到另一个bean中,或者以程序的方式调用容器的getBean()方法)都会产生一个新的bean实例,
相当与一个new的操作;
3.request 表示该针对每一次HTTP请求都会产生一个新的bean,同时该bean仅在当前HTTP request内有效;
4.session 表示作用域表示该针对每一次HTTP请求都会产生一个新的bean,同时该bean仅在当前HTTP session内有效;
5.global session 作用域类似于标准的HTTP Session作用域,不过它仅仅在基于portlet的web应用中才有意义:
Portlet规范定义了全局Session的概念,它被所有构成某个 portlet web应用的各种不同的portlet所共享;
在global session作用域中定义的bean被限定于全局portlet Session的生命周期范围内;
如果在web中使用global session作用域来标识bean,那么web会自动当成session类型来使用。
6.@Service 用于标注业务层组件;
1. 默认指定的bean中的id是"zoo",即类名且首字母小写;
2. 如果想改变这种形式,可以指定bean在Spring容器中的名字: @Service("Zoo");
7.@Controller 用于标注控制层组件(如struts中的action);
8.@Component 所有受Spring管理组件的通用形式,@Component注解可以放在类的头上,@Component不推荐使用;
9.@Repository 对应数据访问层Bean:
1.@Repository(value="userDao"):注解是告诉Spring,让Spring创建一个名字叫"userDao"的UserDaoImpl实例,当Service需要
使用Spring创建的名字叫"userDao"的UserDaoImpl实例时,就可以使用@Resource(name = "userDao")注解告诉Spring,
Spring把创建好的userDao注入给Service即可。
2.@Resource(name = "userDao"):注入userDao,从数据库中根据用户Id取出指定用户时需要用到;
10.@Configuration 把一个类作为一个IoC容器,它的某个方法头上如果注册了@Bean,就会作为这个Spring容器中的Bean;
11.@Lazy(true) 表示延迟初始化;
12.@PostConstruct 用于指定初始化方法(用在方法上);
13.@PreDestory 用于指定销毁方法(用在方法上);
14.@DependsOn 定义Bean初始化及销毁时的顺序;
15.@Primary 自动装配时当出现多个Bean候选者时,被注解为@Primary的Bean将作为首选者,否则将抛出异常;
16.@PostConstruct 初始化注解;
17.@PreDestroy 摧毁注解 默认 单例 启动就加载;
18.@Async 异步方法调用;
19.@RequestMapping:RequestMapping是一个用来处理请求地址映射的注解,可用于类或方法上;
20.@ResponseBody:该注解用于将Controller的方法返回的对象,返回的数据不是html标签的页面,而是其他某种格式的数据时(如json、xml等)使用;
使用注解之前要开启自动扫描功能,其中base-package为需要扫描的包(含子包)。
1.@Resource 默认按名称装配,当找不到与名称匹配的bean才会按类型装配。
1.@Resource的装配顺序:
1).@Resource后面没有任何内容,默认通过name属性去匹配bean,找不到再按type去匹配;
2).指定了name或者type则根据指定的类型去匹配bean;
3).指定了name和type则根据指定的name和type去匹配bean,任何一个不匹配都将报错;
2.@Autowired和@Resource两个注解的区别:
1).@Autowired默认按照byType方式进行bean匹配,@Resource默认按照byName方式进行bean匹配;
2).@Autowired是Spring的注解,@Resource是J2EE的注解,这个看一下导入注解的时候这两个注解的包名就一清二楚了;
Spring属于第三方的,J2EE是Java自己的东西,因此,建议使用@Resource注解,以减少代码和Spring之间的耦合。
2.@Autowired 默认按类型装配,如果我们想使用按名称装配,可以结合@Qualifier注解一起使用。如(3):
1.@Autowired注解要去寻找的是一个Bean,当指定的Bean定义不存在时,自然就不是一个Bean,Spring容器也就找不到;
如果属性找不到时不想让Spring容器抛出异常,而是显示null,可以将@Autowired注解的required属性设置为false即可:
3.@Autowired @Qualifier("personDaoBean") 存在多个实例配合使用
4.@Repository 用于标注数据访问组件,即DAO组件;
5.@Scope 用于指定scope作用域的(用在类上):
1.singleton:默认单例模式,即:Spring IOC容器中只会存在一个共享的bean实例,并且所有对bean的请求,只要id与该bean定义
相匹配,则只会返回bean的同一实例,一个容器对应一个bean;
2.prototype 表示多例:每一次请求(将其注入到另一个bean中,或者以程序的方式调用容器的getBean()方法)都会产生一个新的bean实例,
相当与一个new的操作;
3.request 表示该针对每一次HTTP请求都会产生一个新的bean,同时该bean仅在当前HTTP request内有效;
4.session 表示作用域表示该针对每一次HTTP请求都会产生一个新的bean,同时该bean仅在当前HTTP session内有效;
5.global session 作用域类似于标准的HTTP Session作用域,不过它仅仅在基于portlet的web应用中才有意义:
Portlet规范定义了全局Session的概念,它被所有构成某个 portlet web应用的各种不同的portlet所共享;
在global session作用域中定义的bean被限定于全局portlet Session的生命周期范围内;
如果在web中使用global session作用域来标识bean,那么web会自动当成session类型来使用。
6.@Service 用于标注业务层组件;
1. 默认指定的bean中的id是"zoo",即类名且首字母小写;
2. 如果想改变这种形式,可以指定bean在Spring容器中的名字: @Service("Zoo");
7.@Controller 用于标注控制层组件(如struts中的action);
8.@Component 所有受Spring管理组件的通用形式,@Component注解可以放在类的头上,@Component不推荐使用;
9.@Repository 对应数据访问层Bean:
1.@Repository(value="userDao"):注解是告诉Spring,让Spring创建一个名字叫"userDao"的UserDaoImpl实例,当Service需要
使用Spring创建的名字叫"userDao"的UserDaoImpl实例时,就可以使用@Resource(name = "userDao")注解告诉Spring,
Spring把创建好的userDao注入给Service即可。
2.@Resource(name = "userDao"):注入userDao,从数据库中根据用户Id取出指定用户时需要用到;
10.@Configuration 把一个类作为一个IoC容器,它的某个方法头上如果注册了@Bean,就会作为这个Spring容器中的Bean;
11.@Lazy(true) 表示延迟初始化;
12.@PostConstruct 用于指定初始化方法(用在方法上);
13.@PreDestory 用于指定销毁方法(用在方法上);
14.@DependsOn 定义Bean初始化及销毁时的顺序;
15.@Primary 自动装配时当出现多个Bean候选者时,被注解为@Primary的Bean将作为首选者,否则将抛出异常;
16.@PostConstruct 初始化注解;
17.@PreDestroy 摧毁注解 默认 单例 启动就加载;
18.@Async 异步方法调用;
19.@RequestMapping:RequestMapping是一个用来处理请求地址映射的注解,可用于类或方法上;
20.@ResponseBody:该注解用于将Controller的方法返回的对象,返回的数据不是html标签的页面,而是其他某种格式的数据时(如json、xml等)使用;