Spring使用注解开发
程序员文章站
2022-07-08 08:36:01
...
Spring使用注解开发
注意:
- 在Spring4之后,使用注解开发,必须先导入AOP的包
- 需要在配置文件中导入context的约束,并增加对注解的支持(两处)
指定位置进行组件扫描,只有扫描到的包中的注解才会生效:
<context:component-scan base-package="com.lbl"/>
@Component
相当于注册一个Bean
@Value
通过这个注解进行属性注入。可以放在属性上,也可以放在Set方法上。
package com.lbl.pojo;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
@Component
public class User {
@Value("Jack")
private String name;
@Value("123")
private int age;
@Override
public String toString() {
return "User{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
}
@Component的衍生注解
这几个衍生注解功能与@Component相同,都是注册Bean,只用于区分MVC三层架构。
- @Controller:用于Controller
- @Repository:用于DAO
- @Service:用于Service
作用域注解
@Scope
例中为单例模式
package com.lbl.service;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Service;
@Service
@Scope("singleton")
public class UserService {
}
XML VS 注解
XML:适合于任何场合,便于维护
注解:只能作用于自己的类,维护相对复杂
XML与注解较好的实践
XML用于管理Bean
注解进行属性的注入
完全采用Java类做配置
@Configuration:声明这是一个配置类
@Import:导入其他配置类
@ComponentScan:扫描指定路径的组件
@Bean:注册Bean,方法名等于Bean id,返回值等于class
package com.lbl.config;
import com.lbl.pojo.User;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;
@Configuration
@Import(MyConfig2.class)
@ComponentScan("com.lbl.pojo")
public class MyConfig {
@Bean
public User user() {
return new User();
}
}
使用IOC容器时,注意使用AnnotationConfigApplicationContext
import com.lbl.config.MyConfig;
import com.lbl.pojo.User;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
public class MyTest {
public static void main(String[] args) {
ApplicationContext context = new AnnotationConfigApplicationContext(MyConfig.class);
User user = (User) context.getBean("user");
System.out.println(user.getName());
}
}
上一篇: Word中的分栏具体位置在哪儿?
推荐阅读
-
Mybaits 源码解析 (十一)----- 设计模式精妙使用:静态代理和动态代理结合使用:@MapperScan将Mapper接口生成代理注入到Spring
-
iOS开发中使用UILabel设置字体的相关技巧小结
-
iOS开发中一些手写控件及其相关属性的使用
-
解析iOS应用的UI开发中懒加载和xib的简单使用方法
-
使用NServiceBus开发分布式应用
-
android开发教程之使用listview显示qq联系人列表
-
android开发教程之listview使用方法
-
android开发教程之使用looper处理消息队列
-
android开发教程之系统资源的使用方法 android资源文件
-
Word开发工具功能推荐:使用Aspose.Words for C ++创建重复节内容控件