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

精品课程网站设计免费的企业黄页网站

精品课程网站设计,免费的企业黄页网站,大型网站 jquery,wordpress 更改主页1.配置类 在spring中,虽然可以用Component把我们想要放入的bean所属的类放入ioc容器中,但是这个类局限于自己自定义的类,但是如果时其他已经被封装好的实现的类,我们就不能这么干了,就只能老老实实用xml文件来。其实还…

1.配置类

在spring中,虽然可以用@Component把我们想要放入的bean所属的类放入ioc容器中,但是这个类局限于自己自定义的类,但是如果时其他已经被封装好的实现的类,我们就不能这么干了,就只能老老实实用xml文件来。其实还是有其他方法的,它就是java的配置类。

那至于什么是配置类呢,它的作用其实和xml文件的作用是差不多的,都是用来管理bean的。

首先来介绍@Configuration

它的作用就是用来指定当前的类是一个配置类。

其实讲到这就够了,至于怎么获取bean后面再来讲。

接着我们来讲一下@ComponentScan

它就是通过注解的方式指定spring在创建容器时要扫描的包(带有@Conponent,@Service),使用它就等同于在xml文件中配置了.它一般和@Configuration配合使用。

<context:component-scan base-package="包路径"></context:component-scan>

该注解有4个属性,分别是basePackages,basePackageClasses,includeFilters,excludeFilters,下面来分别讲解吧。

basePackages:用与指定要扫描的包的路径,可以同时指定多个包,例如@ComponentScan(basePackages={" 包1","包2"})

basePackageClasses:这个就更加准确,用来指定具体要扫描的类,它也可以同时指定多个类,例如:@ComponentScan(basePackageClasses={"类a.class,类b.class"})

includeFilters:指定要筛选的类,它一般配合basePackages来使用,通常先是basePackages来指定要扫描的包,然后includeFilters来从这些包中指定要筛选的类型。例如@ComponentScan(basePackages={“包1,包2”}

includeFilters=@ComponentScan.Filter(type=FilterType.ASSIGNABLE_TYPE,classes="类a")

这里还要补充一点就是关于这里的type,常用的分两种,FilterType.ASSIGNABLE_TYPE和FilterType.ANNOTATION,第一个就是表明该过滤器会筛选指定的类及其子类,第二个就不会连带着筛选指定的类的子类,而是你标明是什么类就筛选什么类。

excludeFilters:它与includeFilters就相反了,它是用来指定要排除的类,当然它也需要与basePackages配合使用,流程也是一样的,先是basePackages来指定要扫描的包,然后excludeFilters来排除相应的类其他就可以注册为bean。

同样需要补充的是,它也有不同的类型,常用的分别是 FilterType.ASSIGNABLE_TYPE和 FilterType.ANNOTATION,也是一样的一个就是排除类及其子类,另一个就是排除类但不排除它的子类。

例如  @ComponentScan(
    basePackages = "包",
    excludeFilters = @ComponentScan.Filter(type = FilterType.ANNOTATION, classes = 类)
)

然后呢来讲一下@Bean

他是用于把当前的方法的返回值作为bean对象作为返回值放入IOC容器中

它有一个属性name,用于指定当前bean的id,如果不写,id默认为方法名。

这里还有一点要提醒,它默认还是单例bean,如果我们想要创建多例bean,就再加一个注解,就是@Scope(value="prototype"),这样就行了

然后就是@Import

它用于引入其他的配置类,用于实现配置的模块化(通俗点讲就是解决了整个项目所有的bean都交由一个配置类,这样显然不符合java中分层的思想,所以可以将这些bean拆分为其他模块,最后在通过引入的方式合并)

例如@Configuration
@Import({类a.class, 类b.class})

最后呢就是@PropertySource

它是用于指定一个或多个属性配置文件的位置,以便在应用程序中加载和使用这些配置文件中的属性值。它可以将外部的属性文件加载到 Spring 的环境中,从而在应用程序中方便地访问这些属性值。

它可以通过value属性指定属性文件的位置,可以使用类路径(classpath:)或文件系统路径(file:)

例如

@Configuration
@PropertySource("classpath:application.properties")
public class AppConfig {// 配置类内容
}

它支持同时加载多个文件,文件间用逗号隔开即可

下面用一个properties文件为例

文件内容如下

jdbc.username=root
jdbc.password=Admin123!
jdbc.url=jdbc:mysql://192.168.10.137:3306/user
jdbc.driverClass=com.mysql.jdbc.Driver

代码

​
​
​
@PropertySource("classpath:jdbcConfig.properties")
public class JdbcConfig {
@Value("${jdbc.driver}")
private String driver;
@Value("${jdbc.url}")
private String url;
@Value("${jdbc.username}")
private String username;
@Value("${jdbc.password}")
private String password;
@Bean(name = "dataSource")
public DataSource dataSource(){
ComboPooledDataSource dataSource = new ComboPooledDataSource();
try {
dataSource.setDriverClass(driver);
dataSource.setJdbcUrl(url);
dataSource.setUser(username);
dataSource.setPassword(password);
return dataSource;
} catch (PropertyVetoException e) {
throw new RuntimeException();
}
}
}​​​

接下来就讲一下啊这个配置类到底怎么用

直接上代码

import org.springframework.context.annotation.AnnotationConfigApplicationContext;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;// 定义一个服务类
class MyService {public void doSomething() {System.out.println("Doing something...");}
}// 配置类
@Configuration
class AppConfig {@Beanpublic MyService myService() {return new MyService();}
}public class Main {public static void main(String[] args) {// 创建 Spring 应用上下文AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(AppConfig.class);// 从上下文中获取 BeanMyService service = context.getBean(MyService.class);// 调用 Bean 的方法service.doSomething();// 关闭上下文context.close();}
}

其实跟之前xml的方式差不多,只不过这个类吧变成了AnnotationConfigApplicationContext,然后把相应的类放进去。

2.整合Junit

Junit就是用来测试片段代码的,下面直接上代码

import org.junit.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;import java.util.List;@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = SpringConfiguration.class)
public class TestAccount {@AutowiredAccountService accountService;@Testpublic void test() {// 3. 执行方法List<Account> accounts = accountService.findAllAccount();for (Account account : accounts) {System.out.println(account);}}
}

@RunWith(SpringJUnit4ClassRunner.class)让 JUnit 使用 Spring 测试运行器,激活 Spring 容器的依赖注入等功能。

@ContextConfiguration(classes = SpringConfiguration.class)指定 Spring 容器的配置来源(配置类或 XML 文件),告诉测试环境如何加载 Bean。

http://www.dtcms.com/wzjs/506367.html

相关文章:

  • 那个建设网站好长沙百度网站推广
  • 怎么做网站赚西安seo全网营销
  • 网站建设留言板怎么做seo排名赚app
  • ipv6跟做网站有关吗长沙专业网站制作
  • wordpress主题织梦天天seo站长工具
  • dw做的网站如何上传云服务东莞今天最新消息新闻
  • 申请免费域名的方法重庆seo顾问服务
  • 网站图片大小优化公司网站怎么优化
  • 国外好的设计网站有哪些深圳外贸网站推广
  • 免费建企业网站美国搜索引擎排名
  • 网站上的qq如何做悬浮免费注册推广网站
  • 自己写的网站如何添加 cnzz统计有道搜索
  • 一级a做爰片免网站百度指数数据分析报告
  • java配合什么做网站推广引流哪个软件最好
  • 福建省晋江市建设局网站网络营销推广与策划
  • seo网站推广公司西安网络公司
  • 网站如何创建首页黑河seo
  • 日照网站建设石家庄网站优化
  • 网站建设设计制作公司百度app下载官方免费下载安装
  • 织梦淘客网站深圳网站seo推广
  • 团购网站建设方案国际要闻
  • 青岛vi设计公司win7优化工具
  • 阿拉巴巴开店网站建设如何注册一个平台
  • 2018一级a做爰片免费网站郑州网络营销公司哪个好
  • wordpress安装百度统计浙江seo关键词
  • 中国做的很好的食品网站全网营销与seo
  • 衡水有做网站的吗百度认证证书
  • 阿拉丁做网站怎么做的百度关键词排名爬虫
  • 网站是做流程手机版谷歌浏览器入口
  • 自己做网络棋牌网站流程数据分析工具