栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Spring注解笔记

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Spring注解笔记

@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,如上图所写会获取系统用户名 改为:

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/605981.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号