昆山市住房和城乡建设局网站谷歌查询关键词的工具叫什么
news/
2025/9/23 10:10:26/
文章来源:
昆山市住房和城乡建设局网站,谷歌查询关键词的工具叫什么,网站建设平台选用,wordpress多站点管理今日目标 掌握纯注解开发依赖注入(DI)模式 学习使用纯注解进行第三方Bean注入 1 注解开发依赖注入(DI)【重点】
问题导入
思考:如何使用注解方式将Bean对象注入到类中
1.1 使用Autowired注解开启自动装配模式#xff08;按类型#xff09;
Service
public class StudentS…今日目标 掌握纯注解开发依赖注入(DI)模式 学习使用纯注解进行第三方Bean注入 1 注解开发依赖注入(DI)【重点】
问题导入
思考:如何使用注解方式将Bean对象注入到类中
1.1 使用Autowired注解开启自动装配模式按类型
Service
public class StudentServiceImpl implements StudentService {//创建成员对象//Autowired注入引用类型自动装配模式默认按类型装配Autowiredprivate StudentDao studentDao ;Overridepublic void save() {System.out.println(Service: 添加学生信息到数据库...);studentDao.save();}
} 说明不管是使用配置文件还是配置类都必须进行对应的Spring注解包扫描才可以使用。Autowired默认按照类型自动装配如果IoC容器中同类的Bean有多个那么默认按照变量名和Bean的名称匹配建议使用Qualifier注解指定要装配的bean名称 注意自动装配基于反射设计创建对象并暴力反射对应属性为私有属性初始化数据因此无需提供setter方法。
1.2 使用Qualifier注解指定要装配的bean名称 目的解决IoC容器中同类型Bean有多个装配哪一个的问题 Service
public class StudentServiceImpl implements StudentService {//创建成员对象//Autowired注入引用类型自动装配模式默认按类型装配Autowired//Qualifier自动装配bean时按bean名称装配Qualifier(studentDaoImpl)private StudentDao studentDao ;Overridepublic void save() {System.out.println(Service: 添加学生信息到数据库...);studentDao.save();}
} 注意Qualifier注解无法单独使用必须配合Autowired注解使用 1.3 使用Value实现简单类型注入
Repository
public class StudentDaoImpl implements StudentDao {//Value注入简单类型无需提供set方法Value(${test.name})private String name;Overridepublic void save() {System.out.println(DAO: name name);System.out.println(DAO: 添加学生信息到数据库...);}
}以上Value注解中使用${test.name}从属性文件中读取test.name值那么就需要在配置类或者配置文件中加载属性文件。
Configuration
ComponentScan(com.itheima)
//PropertySource加载properties配置文件
PropertySource(classpath:test.properties) //如果是多个属性文件则使用{}数组
public class SpringConfig {
}注意PropertySource中加载多文件请使用数组格式配置不允许使用通配符* 2 注解开发管理第三方Bean【重点】
问题导入
思考:导入自己定义的配置类有几种方式
【第零步】pom.xml添加数据库依赖
!-- mysql 驱动--
dependencygroupIdmysql/groupIdartifactIdmysql-connector-java/artifactIdversion8.0.30/version
/dependency
!--druid包--
dependencygroupIdcom.alibaba/groupIdartifactIddruid/artifactIdversion1.2.18/version
/dependency【第一步】单独定义配置类在config包下创建
package com.zbbmeta.config;import com.alibaba.druid.pool.DruidDataSource;
import org.springframework.context.annotation.Bean;import javax.sql.DataSource;public class JdbcConfig {//Bean表示当前方法的返回值是一个bean对象添加到IOC容器中Beanpublic DataSource dataSource(){DruidDataSource ds new DruidDataSource();ds.setDriverClassName(com.mysql.cj.jdbc.Driver);ds.setUrl(jdbc:mysql://localhost:3306/spring_druid);ds.setUsername(root);ds.setPassword(root);return ds;}
}【第二步】将独立的配置类加入核心配置
方式1Import注解导入式
Configuration // 指定这个类为配置类,替代application.xml
ComponentScan(com.zbbmeta)//代替context:component-scan base-packagecom.zbbmeta /
PropertySource(classpath:test.properties) //如果是多个属性文件则使用{}数组
Import(JdbcConfig.class) //加载JdbcConfig配置类
public class SpringConfig {}
方式2ComponentScan扫描式 JdbcConfig类上添加注解
Configuration
public class JdbcConfig {//Bean表示当前方法的返回值是一个bean对象添加到IOC容器中Beanpublic DataSource dataSource(){DruidDataSource ds new DruidDataSource();ds.setDriverClassName(com.mysql.cj.jdbc.Driver);ds.setUrl(jdbc:mysql://localhost:3306/spring_druid);ds.setUsername(root);ds.setPassword(root);return ds;}
}SpringConfig配置不变
Configuration // 指定这个类为配置类,替代application.xml
ComponentScan(com.zbbmeta)//代替context:component-scan base-packagecom.zbbmeta /
PropertySource(classpath:test.properties) //如果是多个属性文件则使用{}数组
//Import(JdbcConfig.class) //加载JdbcConfig配置类
public class SpringConfig {}3 注解开发为第三方Bean注入资源【重点】
问题导入
思考:配置类中如何注入简单类型数据如何注入引用类型数据
3.1 简单类型依赖注入
public class JdbcConfig {Value(com.mysql.jdbc.Driver)private String driver;Value(jdbc:mysql://localhost:3306/spring_db)private String url;Value(root)private String userName;Value(root)private String password;//1.定义一个方法获得要管理的对象//2.Bean表示当前方法的返回值是一个bean对象添加到IOC容器中Beanpublic DataSource dataSource(){DruidDataSource ds new DruidDataSource();ds.setDriverClassName(driver);ds.setUrl(url);ds.setUsername(userName);ds.setPassword(password);return ds;}
}说明如果Value()中使用了EL表达式读取properties属性文件中的内容那么就需要加载properties属性文件。 3.2 引用类型依赖注入
//Spring会自动从IOC容器中根据类型找到StudentDao对象赋值给参数studentDao变量如果没有就会报错。Beanpublic DataSource dataSource(StudentDao studentDao){System.out.println(JdbcConfig studentDao studentDao);DruidDataSource ds new DruidDataSource();ds.setDriverClassName(driver);ds.setUrl(url);ds.setUsername(userName);ds.setPassword(password);return ds;}注意引用类型注入只需要为bean定义方法设置形参即可容器会根据类型自动装配对象
3.3 测试类 Testpublic void testDatasource() throws SQLException {//目标从IOC容器中获取德鲁伊连接池对象//1.AnnotationConfigApplicationContext加载Spring配置类初始化Spring容器AnnotationConfigApplicationContext ac new AnnotationConfigApplicationContext(SpringConfig.class);//按类型获取beanDataSource dataSource ac.getBean(DataSource.class);Connection connection dataSource.getConnection();//3.打印对象System.out.println(连接池对象dataSource);System.out.println(连接象地址connection);//4.关闭容器ac.close();}3.4 注解开发总结
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/912160.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!