一篇文章带你掌握主流基础框架——Spring(11)

package com.itheima.dao.impl;import com.itheima.dao.BookDao;import org.springframework.beans.factory.annotation.Value;import org.springframework.stereotype.Repository;@Repository("bookDao")public class BookDaoImpl implements BookDao {//@Value:注入简单类型(无需提供set方法)@Value("123")private String name;public void save() {System.out.println("book dao save ..." + name);}}之所以使用@Value的形式配置 , 是因为我们的类型值不一定是由手动输入的,有可能来自于Properties资源:

  • 首先我们需要在Springconfig中配置相关资源
package com.itheima.config;import org.springframework.context.annotation.ComponentScan;import org.springframework.context.annotation.Configuration;import org.springframework.context.annotation.PropertySource;@Configuration@ComponentScan("com.itheima")//@PropertySource加载properties配置文件@PropertySource({"jdbc.properties"})public class SpringConfig {}
  • 然后我们在数据层调用时,采用${}来匹配数据
package com.itheima.dao.impl;import com.itheima.dao.BookDao;import org.springframework.beans.factory.annotation.Value;import org.springframework.stereotype.Repository;@Repository("bookDao")public class BookDaoImpl implements BookDao {//@Value:注入简单类型(无需提供set方法)@Value("${name}")private String name;public void save() {System.out.println("book dao save ..." + name);}}注解开发第三方bean我们在实际开发中不仅仅需要对自己的bean进行管理,有时候可能需要引进其他的bean
下面我们以Druid为例进行讲解:
  1. 首先在pom.xml中导入Druid坐标
<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.itheima</groupId><artifactId>spring_14_annotation_third_bean_manager</artifactId><version>1.0-SNAPSHOT</version><dependencies><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>5.2.10.RELEASE</version></dependency><dependency><groupId>com.alibaba</groupId><artifactId>druid</artifactId><version>1.1.16</version></dependency></dependencies></project>
  1. 使用@Bean配置第三方Bean
// 该bean同样属于config文件 , 我们同样放置在config文件夹下// 在后续我们将会讲解如何进行连接package com.itheima.config;import com.alibaba.druid.pool.DruidDataSource;import com.itheima.dao.BookDao;import org.springframework.beans.factory.annotation.Value;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import javax.sql.DataSource;public class JdbcConfig {// 1.定义一个方法获得要管理的对象// 2.添加@Bean,表示当前方法的返回值是一个bean// @Bean修饰的方法 , 形参根据类型自动装配@Beanpublic DataSource dataSource(){DruidDataSource ds = new DruidDataSource();ds.setDriverClassName("com.mysql.jdbc.Driver");ds.setUrl("jdbc:mysql://localhost:3306/spring_db");ds.setUsername("root");ds.setPassword("123456");return ds;}}
  1. 将独立的配置类加入核心配置(导入法)
// SpringConfigpackage com.itheima.config;import com.alibaba.druid.pool.DruidDataSource;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.ComponentScan;import org.springframework.context.annotation.Configuration;import org.springframework.context.annotation.Import;import javax.sql.DataSource;@Configuration@ComponentScan("com.itheima")//@Import:导入配置信息(如果需要多个,同样采用{}数组形式)@Import({JdbcConfig.class})public class SpringConfig {}// JdbcConfigpackage com.itheima.config;import com.alibaba.druid.pool.DruidDataSource;import com.itheima.dao.BookDao;import org.springframework.beans.factory.annotation.Value;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import javax.sql.DataSource;//@Configurationpublic class JdbcConfig {//@Bean修饰的方法,形参根据类型自动装配@Beanpublic DataSource dataSource(){DruidDataSource ds = new DruidDataSource();// 配置信息return ds;}}
注意:除了上述的导入法外还存在有其他方法,但导入法属于主流,因此我们不介绍其他流派 , 感兴趣的同学可以去查阅一下
注解开发为第三方导入资源我们的第三方bean也可能需要导入部分资源,下面我们进行简单介绍:
  • 简单类型依赖注入
package com.itheima.config;import com.alibaba.druid.pool.DruidDataSource;import com.itheima.dao.BookDao;import org.springframework.beans.factory.annotation.Value;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import javax.sql.DataSource;//@Configurationpublic class JdbcConfig {//1.定义一个方法获得要管理的对象@Value("com.my

推荐阅读