• SSM17:注解开发管理第三方bean


     目录

    建立空项目 

    建立一个模块:maven项目

    建立数据层dao和业务层service的接口和实现类文件

    BookDao.class

    BookDaoimpl.class

    BookService.class

    BookServiceimpl.class

    建立测试类app.class

    在pom.xml导入spring的两个坐标

    SpringConfig.class

    测试结果

     小结


    建立空项目 

    建立一个模块:maven项目

    建立数据层dao和业务层service的接口和实现类文件

    目录如下:

    BookDao.class

    1. package com.itheima.dao;
    2. public interface BookDao {
    3. public void save();
    4. }

    BookDaoimpl.class

    1. package com.itheima.dao.impl;
    2. import com.itheima.dao.BookDao;
    3. import org.springframework.beans.factory.annotation.Value;
    4. import org.springframework.context.annotation.Scope;
    5. import org.springframework.stereotype.Component;
    6. import org.springframework.stereotype.Repository;
    7. import javax.annotation.PostConstruct;
    8. import javax.annotation.PreDestroy;
    9. //@Component
    10. @Repository("b1")
    11. @Scope
    12. public class BookDaoimpl implements BookDao {
    13. @Value("${name}")
    14. private String name;
    15. public void save() {
    16. System.out.println("BookDao运行了"+name);
    17. }
    18. @PostConstruct
    19. public void init() {
    20. System.out.println("初始化成功");
    21. }
    22. @PreDestroy
    23. public void destroy() {
    24. System.out.println("销毁成功");
    25. }
    26. }

    BookService.class

    1. package com.itheima.service;
    2. public interface BookService {
    3. public void save();
    4. }

    BookServiceimpl.class

    1. package com.itheima.service.impl;
    2. import com.itheima.dao.BookDao;
    3. import com.itheima.dao.impl.BookDaoimpl;
    4. import com.itheima.service.BookService;
    5. import org.springframework.beans.factory.annotation.Autowired;
    6. import org.springframework.beans.factory.annotation.Qualifier;
    7. import org.springframework.stereotype.Component;
    8. import org.springframework.stereotype.Service;
    9. @Service
    10. public class BookServiceimpl implements BookService {
    11. @Autowired//有了自动装配就不用写set方法了
    12. @Qualifier("b1")//多个相同类型的bean用@Qualifier("b2")区分
    13. private BookDao bookDao;
    14. public void save() {
    15. System.out.println("BookService运行了");
    16. bookDao.save();
    17. }
    18. }

    建立测试类app.class

    1. package com.itheima;
    2. import com.itheima.Config.SpringConfig;
    3. import com.itheima.dao.BookDao;
    4. import com.itheima.service.BookService;
    5. import org.springframework.context.ApplicationContext;
    6. import org.springframework.context.annotation.AnnotationConfigApplicationContext;
    7. import javax.sql.DataSource;
    8. public class APPText {
    9. public static void main(String[] args) {
    10. //新的加载配置类的方式
    11. AnnotationConfigApplicationContext ctx=new AnnotationConfigApplicationContext(SpringConfig.class);
    12. DataSource source = ctx.getBean(DataSource.class);
    13. System.out.println(source);
    14. }
    15. }

    在pom.xml导入spring的两个坐标

    1. "1.0" encoding="UTF-8"?>
    2. <project xmlns="http://maven.apache.org/POM/4.0.0"
    3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    4. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    5. <modelVersion>4.0.0modelVersion>
    6. <groupId>org.examplegroupId>
    7. <artifactId>springzj06artifactId>
    8. <version>1.0-SNAPSHOTversion>
    9. <dependencies>
    10. <dependency>
    11. <groupId>org.springframeworkgroupId>
    12. <artifactId>spring-contextartifactId>
    13. <version>5.2.10.RELEASEversion>
    14. dependency>
    15. <dependency>
    16. <groupId>junitgroupId>
    17. <artifactId>junitartifactId>
    18. <version>4.12version>
    19. <scope>testscope>
    20. dependency>
    21. <dependency>
    22. <groupId>com.alibabagroupId>
    23. <artifactId>druidartifactId>
    24. <version>1.1.10version>
    25. dependency>
    26. dependencies>
    27. <properties>
    28. <maven.compiler.source>8maven.compiler.source>
    29. <maven.compiler.target>8maven.compiler.target>
    30. properties>
    31. project>

    SpringConfig.class

    1. package com.itheima.Config;
    2. import com.alibaba.druid.pool.DruidDataSource;
    3. import org.springframework.context.annotation.*;
    4. import javax.sql.DataSource;
    5. @Configuration
    6. //@ComponentScan("com.itheima")
    7. //@PropertySource({"jdbc.properties"})
    8. @Import(jdbcConfig.class)
    9. public class SpringConfig {
    10. }

    jdbcConfig.class

    1. package com.itheima.Config;
    2. import com.alibaba.druid.pool.DruidDataSource;
    3. import org.springframework.context.annotation.Bean;
    4. import javax.sql.DataSource;
    5. public class jdbcConfig {
    6. //将方法的返回值定义为一个bean
    7. @Bean
    8. public DataSource dataSource(){
    9. DruidDataSource ds=new DruidDataSource();
    10. ds.setDriverClassName("com.mysql.jdbc.Driver");
    11. ds.setUrl("jdbc:mysql://localhost:3306/db_librarysys");
    12. ds.setPassword("root");
    13. ds.setUsername("root");
    14. return ds;
    15. }
    16. }

    测试结果

     

     小结

  • 相关阅读:
    Python基于Django的电影推荐系统和论坛项目完整源码
    从前,有一个简单的通道系统叫尤娜……
    RabbitMQ官方案例学习记录
    【C进阶】指针笔试题解析
    制作一个简单HTML电影网页设计(HTML+CSS)
    并发编程六 并发工具包 CountDownLatch&Semaphore应用与原理
    数据库(SQL sever)
    UE5 虚幻引擎,打开空间蓝图,出现未识别的选项卡
    如何避免由 Web 字体引起的布局偏移
    体育场馆LED显示屏的分类及应用
  • 原文地址:https://blog.csdn.net/weixin_51330376/article/details/127418280