spring之注解开发

来源:互联网 发布:一周休三天 知乎 编辑:程序博客网 时间:2024/06/14 23:27

1使用注解的方式创建对象

    sping使用提供了4中注解的方式开发,分别是@Repository用于持久层@Controller用于web层@Service用于业务层@Component,但是这四个注解目前基本没有区别,在哪一层用哪一个都可以。具体事例如下:

//类的定义

@Component(value="user")//注:value可以不写,直接写“user”
public class User {

public void add(){
System.out.println("user  add......");
}
}

//配置文件

 <!-- 使用注解的方式创建bean 
         注意:如果有多个包可以通过逗号写入多个,也提取包名相同的部分,如果cn.zy.anno和
         cn.zy.pojo,如果写入cn.zy则会同时扫描这两个包
     -->
     <context:component-scan base-package="cn.zy.anno"></context:component-scan>

//测试用例

@Test
public void test(){
ApplicationContext context=new ClassPathXmlApplicationContext("bean.xml");
User user=(User) context.getBean("user");
System.out.println(user);
user.add();
}

2 spring使用注解的方式注入属性

    spring提供了2个注解的方式注入属性,分别是@Autowired和@Resource(name="属性所属的类,即bean方式创建对象中的id值或者是注解方式创建对象中value的值")

//类的定义

@Repository("userDao")
public class UserDao {
public void addUserDao(){
System.out.println("userDao......");
}
}

@Service("userService")
public class UserService {
@Resource(name="userDao")//注意:name的值是需要的注入的属性的类
private UserDao userDao;
public void addUserService(){
System.out.println("addUserService .....");
userDao.addUserDao();
}
}

//配置文件

与注解创建对象相同

//测试类

@Test
public void test2(){
ApplicationContext context=new ClassPathXmlApplicationContext("bean.xml");
UserService userService=(UserService) context.getBean("userService");
System.out.println(userService);
userService.addUserService();
}