@Configuration 标识配置类
@ComponentScan(“com.jt”) 包扫描的注解 使Spring注解有效
=====
@Lazy懒加载 不写默认true
@Bean 将自己方法的返回值交给Spring容器管理(key=方法名)
@Scope("xxx")单例(singleton)、多例(prototype)
=====
@Component 将该类交给spring容器管理. 通过反射自动实例化对象(key=类名小写)
@Autowired把接口实现类注入当前类 (默认按照类型注入)
@Qualifier("dog")明确注入接口的哪个实现类
=====
@PostCanstruct创建完对象后 立即(自动)调用(生命周期)
@PreDestory对象销毁前调用(生命周期)
=====
持久层(Mapper数据库交互) @Repository
@Repository public class UserMapperImpl implements UserMapper { @Override public void addUser() { System.out.println("添加user"); } }
@Repository被@Component修饰 所以该类也会交给Spring容器管理 源码:
@Target({ElementType.TYPE}) @Retention(RetentionPolicy.RUNTIME) @documented @Component public @interface Repository { @AliasFor( annotation = Component.class ) String value() default ""; }
==
业务层(Service编写业务逻辑) @Service
@Service public class UserServiceImpl implements UserService { @Autowired private UserMapper userMapper; @Override public void addUser() { userMapper.addUser(); } } //@Service源码 @Target({ElementType.TYPE}) @Retention(RetentionPolicy.RUNTIME) @documented @Component public @interface Service { @AliasFor( annotation = Component.class ) String value() default ""; }
==
控制层(Controller与前端页面交互) @Controller
@Controller public class UserController { @Autowired private UserService userService; public void addUser() { userService.addUser(); } } //@Controller源码 @Target({ElementType.TYPE}) @Retention(RetentionPolicy.RUNTIME) @documented @Component public @interface Controller { @AliasFor( annotation = Component.class ) String value() default ""; }
=====
@Value 直接给基本属性赋值
@PropertySource("classpath:/xxx",encoding="utf8") 引入配置文件
读取配置文件时,默认使用的是ISO-8859-1编码 要手动明确编码格式,否则乱码
@Repository @PropertySource("classpath:/user.properties",encoding ="utf8")//引入配置文件 public class UserMapperImpl implements UserMapper { @Value("${username}")//spring el表达式 缩写 spel表达式 private String username; @Override public void addUser() { System.out.println("add user"); } }
说明:Windows系统中有系统变量中有一个username,如上图所写会获取系统用户名 改为:
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)