当前位置: 首页 > news >正文

营销网站的专业性诊断评价和优化怎么制作网页页面

营销网站的专业性诊断评价和优化,怎么制作网页页面,wordpress评论图片,51网站怎么打开今日目标 掌握纯注解开发依赖注入(DI)模式 学习使用纯注解进行第三方Bean注入 1 注解开发依赖注入(DI)【重点】 问题导入 思考:如何使用注解方式将Bean对象注入到类中 1.1 使用Autowired注解开启自动装配模式(按类型) 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 驱动-->
<dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.30</version>
</dependency>
<!--druid包-->
<dependency><groupId>com.alibaba</groupId><artifactId>druid</artifactId><version>1.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;}
}

【第二步】将独立的配置类加入核心配置

方式1:@Import注解导入式

@Configuration // 指定这个类为配置类,替代application.xml
@ComponentScan("com.zbbmeta")//代替<context:component-scan base-package="com.zbbmeta" />
@PropertySource("classpath:test.properties") //如果是多个属性文件,则使用{}数组
@Import(JdbcConfig.class)  //加载JdbcConfig配置类
public class SpringConfig {}

方式2:@ComponentScan扫描式

  • 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-package="com.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.hengruixuexiao.com/news/11983.html

相关文章:

  • 为什么做电商网站佳木斯seo
  • 成都城乡建设委员会的网站今日新闻最新
  • 网站开发工程师招聘要求百度免费安装下载
  • 企业网站管理系统破解版在线推广企业网站的方法
  • 淄博手机网站软文接单平台
  • 网站建设计划建议安卓优化大师历史版本
  • 无忧seo博客免费seo网站自动推广软件
  • 微网站 价格百度搜索排名与点击有关吗
  • 顺的做网站便宜吗站长工具seo综合查询问题
  • 网站开发 方案 报价单龙华线上推广
  • adobe dreamweaver官网万能优化大师下载
  • 三乡网站建设黄页网站推广效果
  • 南通企业建站模板哈尔滨seo公司
  • 网站首页结构搜索引擎优化seo是什么
  • 广州哪里可以做网站云搜索引擎入口
  • 大连网站搜索排名百度排行榜风云榜
  • 裁剪图网站推广效果最好的平台
  • 建设工程质量检测公司网站加盟
  • 企业官方网站怎么建设windows优化大师软件介绍
  • 网上商城网站建设合肥网站制作
  • 政府网站预算公开如何做app推广方式
  • 做电商网站用什么软件开发白度指数
  • 网站后台登陆验证码管理培训班
  • 本墨陈黑做网站有版权win优化大师怎么样
  • rttheme 18 wordpress代做seo关键词排名
  • 17网站一起做网店浙江seo营销方案
  • 乐清手机网站优化推广网站提交收录
  • 使用top域名做网站如何免费注册一个网站
  • 网站转跳怎么做免费网站开发平台
  • 网站ip和uv站长工具网站查询