spring注解大全

@Service

@Service对应的是业务层Bean,例如:

@Service("userService")
public class UserServiceImpl implements UserService {
………
}


@Controller

@Controller对应表现层的Bean,也就是Action,例如:

@Controller

@Scope("prototype")
public class UserAction extends BaseAction<User>{
 ……
}


@Scope

@Scope("prototype")表示将Action的范围声明为原型,可以利用容器的scope="prototype"来保证每一个请求有一个单独的Action来处理,避免struts中Action的线程安全问题。spring 默认scope 是单例模式(scope="singleton"),这样只会创建一个Action对象,每次访问都是同一Action对象,数据不安全,struts2 是要求每次次访问都对应不同的Action,scope="prototype" 可以保证当有请求的时候都创建一个Action对象


@Autowired

默认按照类型装配,默认情况下它要求依赖对象必须存在如果允许为null,可以设置它required属性为false,如果我们想使用按照名称装配,可 以结合@Qualifier注解一起使用


@Resource

(1)、@Resource后面没有任何内容,默认通过name属性去匹配bean,找不到再按type去匹配
(2)、指定了name或者type则根据指定的类型去匹配bean
(3)、指定了name和type则根据指定的name和type去匹配bean,任何一个不匹配都将报错

@Autowired与@Resource的区别

@Autowired和@Resource两个注解的区别:
(1)、@Autowired默认按照byType方式进行bean匹配,@Resource默认按照byName方式进行bean匹配
(2)、@Autowired是Spring的注解,@Resource是J2EE的注解,这个看一下导入注解的时候这两个注解的包名就一清二楚了


待整理。。。。。。


@Qualifier

 @Autowired是根据类型进行自动装配的。例如,如果当Spring上下文中存在不止一个UserDao类型的bean时,就会抛出BeanCreationException异常;如果Spring上下文中不存在UserDao类型的bean,也会抛出BeanCreationException异常。我们可以使用@Qualifier配合@Autowired来解决这些问题。如下:

1). 可能存在多个UserDao实例

Java代码

 
 
  1. @Autowired       
  2. @Qualifier("userServiceImpl")         
  3. public IUserService userService;  

或者

Java代码

 
 
  1. @Autowired       
  2. public void setUserDao(@Qualifier("userDao") UserDao userDao) {        
  3.     this.userDao = userDao;        
@Component

         @Component注解(不建议使用)

@Override


@ResponseBody


@RequestMapping


@Aspect



@Pointcut


@Around


@value 

Spring 3支持@value注解的方式获取properties文件中的配置值,大简化了读取配置文件的代码

用法如下:

@Value("${user_id}")private String user_id;   //配置文件config.properties中的id配置值

@value需要参数,这里参数可以是两种形式:

@Value("#{configProperties['user_id']}")或者@Value("${user_id}");
我们来看看如何使用这两形式,在配置上有什么区别:
1、@Value("#{configProperties['t1.msgname']}")这种形式的配置中有“configProperties”,其实它指定的是配置文件的加载对象:配置如下:
    <bean id="configProperties" class="org.springframework.beans.factory.config.PropertiesFactoryBean">
        <property name="locations">
            <list>
                <value>classpath:/config/user.properties</value>
            </list>
        </property>
    </bean>
    这样配置就可完成对属性的具体注入了;

   user.properties内容:

   user_id=1001019



    2、@Value("${user_id}")这种形式不需要指定具体加载对象,需要一个关键的对象来完成PreferencesPlaceholderConfigurer,这个对象的配置可以利用上面配置1中的配置,也可以自己直接自定配置文件路径。
    如果使用配置1中的配置,可以写成如下情况:
    <bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PreferencesPlaceholderConfigurer">
        <property name="properties" ref="configProperties"/>
    </bean>


    如果直接指定配置文件的话,可以写成如下情况:
    <bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PreferencesPlaceholderConfigurer">
        <property name="location">
        <value>config/t1.properties</value>
        </property>
    </bean>     


@RequestParam


@ModelAttribute


@Cacheable


@CacheFlush


@Required



@SessionAttributes



未完。。。。。。继续整理中。。。。。。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值