本篇文章主要介绍了"Spring进阶之路12-注解方式实现Bean的注入",主要涉及到方面的内容,对于其他编程jrs看球网直播吧_低调看直播体育app软件下载_低调看体育直播感兴趣的同学可以参考一下:
鉴于之前的博文中都是通过在xml中对bean进行配置的方式注入的,又加上博友的要求,决定对注解方式进行一个简单的讲解,这里不会涉及太复杂的程序,因为本文的目的是...
package com.siti.spring20160316;
import javax.annotation.PostConstruct;
import javax.annotation.PreDestroy;
import javax.annotation.Resource;
import org.springframework.stereotype.Service;
/**
*
* @ProjectName SpringBlob
* @ClassName UserService
* @Description 一般情况下,都是采用接口的,这里没有使用接口,便于读者直接看清楚调用关系
* @author wy
* @date 2016-3-16
*
*/
@Service
public class UserService {
@Resource
private UserDao userDao;
public boolean login(String userName, String password){
System.out.println("UserService--login");
if(userDao.isExist(userName, password)){
return true;
}
return false;
}
@PostConstruct
public void init(){
System.out.println("UserService--init");
}
@PreDestroy
public void destroyMethod(){
System.out.println("UserService--destroyMethod");
}
}
DAO层主要用到的注解有@Repository
由于这里属于模拟没有加入连接数据库部分的持久化操作,请见谅。
package com.siti.spring20160316;
import org.springframework.stereotype.Repository;
@Repository
public class UserDao {
public boolean isExist(String userName, String password){
System.out.println("UserDao--isExist");
if("wy".equals(userName)){
return true;
}
return false;
}
}
进行测试第一个输出比较两个得到的对象是不是同一个对象。读者可以自己检验其他的几个对象是不是同一个。因为UserAction类标注了@Scope的注解并指定其类型为prototype,那么这里应该是不一样的,输出false
package com.siti.spring20160316;
import org.springframework.context.support.AbstractApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class MainTest {
public static void main(String[] args) {
AbstractApplicationContext context = new ClassPathXmlApplicationContext("applicationContext20160316.xml");
UserAction action = (UserAction) context.getBean("userAction");
UserAction action2 = (UserAction) context.getBean("userAction");
System.out.println("这两个对象是否是同一个对象:" + action.equals(action2));
boolean bool = action.login("wy", "******");
if(bool){
System.out.println("登录成功!");
}else{
System.out.println("登录不成功!");
}
context.registerShutdownHook();
}
}
输出结果
自定义注解
这里只是自己写了个注解,但是没有解析类是没办法去用的,读者可以试试看能不能自己写出他的处理类,可以共同交流下。
package com.siti.spring20160316;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
@Retention(RetentionPolicy.RUNTIME)// 运行期间注入
@Target({ElementType.FIELD, ElementType.METHOD})// 可以标注在哪里,这里是属性和方法上
public @interface MyAutowired {
// 参数
public String name() default "";
}
以上就介绍了Spring进阶之路12-注解方式实现Bean的注入,包括了方面的内容,希望对其他编程jrs看球网直播吧_低调看直播体育app软件下载_低调看体育直播有兴趣的朋友有所帮助。
本文网址链接:http://www.codes51.com/article/detail_447988_3.html