Spring使用注解开发

Spring使用注解开发

Spring完全可以脱离项目里,而使用注解进行开发。

这里我们主要了解Spring对<bean>的替代。

在前面的学习过程中,<bean>可以对java程序的每一曾都有管理,因此使用注解也可以对程序的每一层进行管理。

使用注解开发的要点

使用注解进行开发必须注意,一定要在xml文件中配置允许注解的配置,一定要开启注解,一定要将需要使用注解的类的包进行扫描

xml依赖

1
2
3
4
5
6
7
8
9
10
11
12
13
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd"
>



</beans>

开起注解:

<context:annotation-config/>

对包进行扫描:

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

注解对各层的托管

这里我们创建一个有多个层的环境进行测试:

  • Dao层
  • Pojo层
  • Service层
  • Controller层

对婆婆层的托管

对pojo层托管使用注解@Component

这样pojo层就被注册成功了,而他的id默认是该类名的小写

test

1
2
3
4
5
6
7
8
9
10
11
12
import com.dwx.pojo.User;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class MyTset {
public static void main(String[] args) {
ApplicationContext context = new ClassPathXmlApplicationContext("applicationContest.xml");
User user = context.getBean("user", User.class);
System.out.println(user);
}
}

如何给属性赋值(注入)?

对属性进行注入可以再该属性的上边或者在该属性的set方法上加上@Value("")来进行赋值

pojo层

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
package com.dwx.pojo;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;

@Component
public class User {
@Value("dwx")
private String name;

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

@Override
public String toString() {
return "User{" +
"name='" + name + '\'' +
'}';
}
}

结果:

1
User{name='dwx'}

对Dao层的托管

使用@Repository

dao层

1
2
3
4
5
6
7
8
9
package com.dwx.dao;

import org.springframework.stereotype.Repository;

@Repository
public class UserDao {

}

对Service层的托管

使用@Service

service层

1
2
3
4
5
6
7
8
package com.dwx.service;

import org.springframework.stereotype.Service;

@Service
public class UserService {
}

对Controller层的托管

使用@Controller

controller层

1
2
3
4
5
6
7
8
9
package com.dwx.controller;


import org.springframework.stereotype.Controller;

@Controller
public class UserController {
}

有趣的点

有趣的是,其实这些层的注解的功能都是一样的。但是为了分层,给他们了名字不同的注解,但是这些注解的实际功能都是一样的。

Donate
  • Copyright: Copyright is owned by the author. For commercial reprints, please contact the author for authorization. For non-commercial reprints, please indicate the source.

扫一扫,分享到微信

微信分享二维码
  • Copyrights © 2015-2023 dwx
  • Visitors: | Views:

请我喝杯咖啡吧~

支付宝
微信