spring注解使用(例子)

Dao层:

接口:
java 复制代码
public interface UserDao {
    public void save();
}
实现类:
java 复制代码
@Component  //声明为组件(关键)
public class UserDaoIim  implements UserDao {
    @Override
    public void save() {
        System.out.println("save");
    }
}
xml配置:
XML 复制代码
<?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 https://www.springframework.org/schema/context/spring-context.xsd">
<!--        包扫描-->
<context:component-scan base-package="包名"></context:component-scan>
</beans>
使用:
java 复制代码
ApplicationContext applicationContext = new ClassPathXmlApplicationContext("spring的配置文件.xml");
UserDao userDao = (UserDao) applicationContext.getBean(UserDaoIim.class);
userDao.save();

配置类:

java 复制代码
@Configuration //定义为配置类
//@ComponentScan("com.dt")//单个包扫描
@ComponentScan({"com.dt.dao","com.dt.service"})//多个包扫描
public class SpringConfig {
 @PostConstruct //初始化时的方法
    public void init(){
        System.out.println("init");
    }
}

使用:

java 复制代码
ApplicationContext applicationContext = new AnnotationConfigApplicationContext(SpringConfig.class);
UserDao userDao = (UserDao) applicationContext.getBean(UserDaoIim.class);
userDao.save();

依赖注入:

service接口:
java 复制代码
public interface UserService {
    public void save();
}
实现类:
java 复制代码
@Service //注明是service层
public class UserServiceImp implements UserService {

    @Autowired //自动注入
  private UserDao userDao;


    public UserServiceImp() {}

    public UserServiceImp(UserDao userDao, Integer number) {
        this.userDao = userDao;
    }

    public UserDao getUserDao() {
        return userDao;
    }

    public void setUserDao(UserDao userDao) {
        this.userDao = userDao;
    }

    @Override
    public void save() {
        userDao.save();
        System.out.println("Service_save");
    }
}
使用:
java 复制代码
ApplicationContext applicationContext = new AnnotationConfigApplicationContext(SpringConfig.class);
UserService userService = applicationContext.getBean(UserServiceImp.class);
userService.save();

读取配置文件:

配置类(添加下面注解):
java 复制代码
@PropertySource("文件")
属性使用(在service接口,添加下面方法):
java 复制代码
    void show();
属性使用(在service实现类,添加下面属性):
java 复制代码
 @Value("${key}") //配置文件的key,读取该key的value
  private String username;


 public void show(){
        System.out.println("username:"+username);
    }
测试:
java 复制代码
ApplicationContext applicationContext = new AnnotationConfigApplicationContext(SpringConfig.class);
UserService userService = applicationContext.getBean(UserServiceImp.class);
userService.show();

导入另一个配置类(方式一):

java 复制代码
@Import("另一个配置类")

导入另一个配置类(方式二):1.在主配置类扫描的包包含配置文件的包。2.在另外的配置文件中添加:@Configuration

第三方bean使用@Bean标记。

相关推荐
知识分享小能手3 分钟前
MongoDB入门学习教程,从入门到精通,MongoDB查询(4)
数据库·学习·mongodb
LSL666_28 分钟前
MybatisPlus条件构造器(上)
java·数据库·mysql·mybatisplus
U-52184F6942 分钟前
深入理解“隐式共享”与“写时复制”:从性能魔法到内存深坑
java·数据库·算法
bearpping1 小时前
SpringBoot最佳实践之 - 使用AOP记录操作日志
java·spring boot·后端
一叶飘零_sweeeet1 小时前
线上故障零扩散:全链路监控、智能告警与应急响应 SOP 完整落地指南
java·后端·spring
Skilce1 小时前
ZrLog 博客系统部署指南(无 War 包版,Maven 构建 + 阿里云镜像优化)
java·阿里云·maven
敲代码的嘎仔1 小时前
Java后端开发——真实面试汇总(持续更新)
java·开发语言·程序人生·面试·职场和发展·八股
程序猿ZhangSir1 小时前
详解了解 Redis IO多路复用底层原理,Select,poll,epoll三者的区别?
数据库·redis·缓存
U-52184F691 小时前
深度解析:从 Qt 的 Q_D 宏说起,C++ 工业级 SDK 是如何保证 ABI 稳定性的
数据库·c++·qt
Gauss松鼠会1 小时前
【GaussDB】LLVM技术在GaussDB等数据库中的应用
大数据·数据库·架构·数据库开发·gaussdb·llvm