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

ps做网站尺寸新媒体seo培训

ps做网站尺寸,新媒体seo培训,怎么建设一个漫画网站,新疆建设兵团门户网站目录 项目概述 Spring IoC注解方式详解 核心注解分析 配置类注解 组件注解 依赖注入方式 字段注入 构造器注入 setter方法注入 Resource注入 多实现类问题解决 Spring与JUnit整合测试 测试类分析 传统测试方式对比 配置方式对比 XML配置(applicatio…

目录

项目概述 

Spring IoC注解方式详解

核心注解分析

配置类注解

组件注解

依赖注入方式

字段注入

构造器注入

setter方法注入

@Resource注入

多实现类问题解决

Spring与JUnit整合测试

测试类分析

传统测试方式对比

配置方式对比

XML配置(applicationContext.xml)

Java配置(SpringConfig.java)

项目结构与依赖


项目概述 

本项目展示了Spring框架中基于注解的IoC(控制反转)实现方式,以及如何将SpringJUnit单元测试框架整合使用。项目包含以下核心内容:

  1. 基于注解的Bean定义与依赖注入
  2. Java配置类替代XML配置
  3. 多实现类的依赖解决策略
  4. SpringJUnit的整合测试

Spring IoC注解方式详解

核心注解分析

配置类注解

SpringConfig.java中:

@Configuration
@ComponentScan("com.qcby")
@Import()
public class SpringConfig {@Beanpublic DataSource getDruidDataSource() throws SQLException {DruidDataSource dataSource = new DruidDataSource();dataSource.setDriver(new Driver());dataSource.setUrl("jdbc:mysql://localhost:3306/hotel?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC");dataSource.setUsername("root");dataSource.setPassword("123456");return dataSource;}
}
  • @Configuration:标识这是一个Spring配置类
  • @ComponentScan:自动扫描指定包及其子包下的组件(@Component,@Service,@Controller等)
  • @Bean:将方法返回的对象注册为Spring容器中的Bean,方法名默认作为Bean的ID

组件注解

在业务实现类中:

@Service
public class UserServiceImpl implements UserService {// ...
}@Service
public class UserServiceImpl01 implements UserService {// ...
}@Controller
public class UserController {// ...
}
  • @Service:标识业务层组件
  • @Controller:标识控制层组件
  • 这些注解都是@Component的特化形式,功能相同但是语义更明确

依赖注入方式

项目展示了多种依赖注入方式:

字段注入

@Autowired
@Qualifier("getDruidDataSource")
private DataSource dataSource;
  • @Autowired:自动按类型装配
  • @Qualifier:当有多个同类型Bean时,指定具体的Bean名称

构造器注入

@Autowired
public UserController(UserService userService) {this.userService = userService;
}

setter方法注入

@Value("123")
public void setMessage(String message) {this.message = message;
}

@Resource注入

@Resource(name = "userServiceImpl")
private UserService userService;

多实现类问题解决

项目中存在两个UserService实现类:

@Service // 默认bean名称为userServiceImpl
public class UserServiceImpl implements UserService@Service // 默认bean名称为userServiceImpl01
public class UserServiceImpl01 implements UserService

在依赖注入时可以通过以下方式制定具体实现:

// 方式1:@Qualifier指定bean名称
@Autowired
@Qualifier("userServiceImpl01")// 方式2:@Resource直接指定name
@Resource(name = "userServiceImpl")

Spring与JUnit整合测试

测试类分析

Demo1.java展示了两种测试方式:

@RunWith(value= SpringJUnit4ClassRunner.class)
//@ContextConfiguration(value= "classpath:applicationContext.xml")
@ContextConfiguration(classes = SpringConfig.class)
public class Demo1 {@Autowiredprivate UserController userController;@Testpublic void run1() throws SQLException {userController.Hello();}
}
  • @RunWith(value= SpringJUnit4ClassRunner.class):使用Spring的测试运行器
  • @ContextConfiguration:指定Spring配置,可以是XML或Java配置类
    • classes属性:制定配置类
    • value属性:指定XML配置文件路径
  • @Autowired:在测试类中直接注入需要的Bean

传统测试方式对比

在项目中注释掉的代码展示了传统测试方式:

// XML配置方式
ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
UserController userController = (UserController) context.getBean("userController");// Java配置类方式
ApplicationContext context = new AnnotationConfigApplicationContext(SpringConfig.class);
UserController userController = (UserController) context.getBean("userController");

与整合测试相比,传统方式需要手动创建应用上下文和获取Bean,代码更冗长。

配置方式对比

项目同时展示了XML和Java两种配置方式

XML配置(applicationContext.xml)

<context:component-scan base-package="com.qcby"/>
<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource"><property name="driverClassName" value="com.mysql.jdbc.Driver"/><property name="url" value="jdbc:mysql://localhost:3306/hbu?useUnicode=true&amp;characterEncoding=UTF-8"/><property name="username" value="root"/><property name="password" value="123456"/>
</bean>

Java配置(SpringConfig.java)

@Bean
public DataSource getDruidDataSource() throws SQLException {DruidDataSource dataSource = new DruidDataSource();dataSource.setDriver(new Driver());dataSource.setUrl("jdbc:mysql://localhost:3306/hotel?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC");dataSource.setUsername("root");dataSource.setPassword("root");return dataSource;
}

Java配置方式更加类型安全,便于重构,且可以充分利用IDE的代码提示功能。

项目结构与依赖

pom.xml中定义了项目依赖:

<dependencies><!-- Spring核心 --><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>5.0.2.RELEASE</version></dependency><!-- 测试相关 --><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.12</version><scope>test</scope></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-test</artifactId><version>5.0.2.RELEASE</version><scope>test</scope></dependency><!-- 数据库相关 --><dependency><groupId>com.alibaba</groupId><artifactId>druid</artifactId><version>1.1.10</version></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.6</version></dependency>
</dependencies>

关键依赖说明:

  • spring-context:Spring核心容器
  • spring-test:Spring测试支持
  • druid:阿里巴巴数据库连接池
  • mysql-conncet-java:MySQL驱动
http://www.dtcms.com/wzjs/282494.html

相关文章:

  • 做苗木生意上什么网站百度在线翻译
  • 搜狗推广做网站要钱吗神点击恶意点击软件
  • 网站建设策划书网页设计淘宝关键词排名查询工具
  • 江苏建站管理系统开发如何优化关键词搜索
  • 建设网站优点快速排名优化推广手机
  • 万维网云南seo网络优化师
  • 做网站用什么主机操作系统百度关键词首页排名
  • 晋江网站建设电商沙盘seo裤子关键词
  • 湖北省建设部网站公告热搜榜百度
  • 太原网站 制作手机优化软件排名
  • 做外贸独立网站网站seo具体怎么做?
  • wordpress能放视频播放器广州宣布5条优化措施
  • 阿里巴巴开通诚信通后网站怎么做冯宗耀seo教程
  • 做网站的时候用的什么框架今天的头条新闻
  • 做公司网站公司百度seo和sem的区别
  • 内蒙古网站备案怎么做域名备案查询站长工具
  • 天河商城网站建设教育培训加盟
  • 如何开网上商城厦门谷歌seo公司
  • 淄博网站建设 招聘手机百度最新正版下载
  • 从网上怎么做网站营销拓客app下载
  • 成都网站建设天府科蓝万秀服务不错的seo推广
  • 贵州5g网站建设深圳整合营销
  • 温州 网站建设公司搜索引擎优化是指什么意思
  • 做科学小制作的视频网站画质优化app下载
  • 电商网站建设机构全球搜索引擎市场份额
  • wordpress关停网站滨州网站seo
  • 如何自己搭建一个网站石家庄网站建设方案优化
  • 本地网站做通用会员卡seo关键字排名优化
  • 马家堡网站建设图片外链在线生成网址
  • 励志做的很好的网站网站推广软件下载