上海市凯发娱乐科技有限公司
股票简称:凯发娱乐 丨 股票代码:481438 联系电话:021-73353763
客服帮助
客服

还有其他问题,请前往 " 联系我们 "

                联
				系
                客
                服
            
发送

联系方式

公司电话: 021-73353763

售后热线: 021-73353763

企业QQ: 490399711

凯发娱乐二维码

微信公众号

凯发娱乐

联系我们

  • 电话咨询:

  • 021-73353763

  • 传真:

  • 021-73353763-9802

  • Email:

  • service@jufenba.cn

  • 办公地址:

  • 上海市宝山区陆翔路111弄6号楼4732室

装备21:9宽屏 索尼新旗舰Xperia 1登陆MWC科技视讯 ⋅

凯发娱乐2019年03月30日12时44分36秒

XtremIO

EMC的one-brick、two-brick和four-brick装备的XtremIO X-Brick阵列是依据闪存的存储处理方案。每个brick包括10TB或20TB的闪存空间。新的Starter X-Brick包括有5TB或是10TB闪存空间。考虑最大容量的景象,新的six-X-Brick集群具有12个活泼的操控器,经过冗余磁盘阵列技能的运用,能够带来90TB的初始容量。EMC在2014年7月扩展了它的XtremIO全闪存阵列渠道,新增了入门级装备Starter X-Brick,规划可到达6个节点,一起还有线内紧缩、静态数据加密和可写快照技能的集成

  易于装备和办理
  BIG-IP LTM供给了先进的东西,使其易于布置和办理,并且确保您的根底架构的灵活性和对其的操控力度。
 

  先进的GUI
  先进的GUI使您能够轻松地进行产品装备,然后下降设置和持续保护本钱。这个GUI经过一个安全的、依据SSL的阅览器接口而供给,其间包括在线协助、查找和分类、在线创立等功用,可大大缩短设置与保护大型装备的时刻。
 

  依据简档 (Profile) 的装备
  简档目标运用户能够创立应用于不同资源的流量行为模板,然后削减重复操作并供给共同的设置修正办法。
 

  装备检索
  AutoDiscovery答应BIG-IP GTM从恣意数量的分布式BIG-IP体系中检索装备,无需在设备间进行重复装备。
 

在Springboot中能够直接在装备文件中掩盖默许的静态资源途径的装备信息:

application.properties装备文件如下:
# 静态资源途径装备
wyait.picpath=D:/demo-images/

spring.mvc.static-path-pattern=/**
spring.resources.static-locations=classpath:/META-INF/resources/,classpath:/resources/,classpath:/static/,classpath:/public/,file:${wyait.picpath}

留意wyait.picpath这个归于自界说的特点,指定了一个途径,留意要以/结束;

spring.resources.static-locations 在这儿装备静态资源途径,前面说了这儿的装备是掩盖默许装备,所以需求将默许的也加上不然static、public等这些途径将不能被当作静态资源途径,在这个最结尾的 file:${wyait.picpath} file:${wyait.picpath},
加 file :是由于指定的是一个详细的硬盘途径,其他的运用classpath指的是体系环境变量。

总结

此装备处理了springboot+thymeleaf架构的获取图片(静态资源)404的问题;之前的SpringMVC + jsp在读取图片的时分,本地或效劳器在读取用户上传的图片时,需求装备nginx;spring boot在不替换域名的前提下,默许是依据application.xml文件的静态资源途径装备查找图片等静态资源;nginx装备是无效的,会导致图片无法获取(读取404)。
所以假如要对图片或其他静态资源进行应用程序别离时,需求运用以上装备,掩盖原springboot默许装备,别的,不需求额定装备nginx,也是一个长处。

shiro装备实体类

/**
 * @项目称号:wyait-manage
 * @包名:com.wyait.manage.config
 * @类描绘:
 * @创立人:wyait
 * @创立时刻:2017-12-12 18:51
 * @version:V1.0
 */
@Configuration public class ShiroConfig {
  private static final Logger logger = LoggerFactory
    .getLogger(ShiroConfig.class);

  /**
   * ShiroFilterFactoryBean 处理阻拦资源文件过滤器
   *  </br>1,装备shiro安全办理器接口securityManage;
   *  </br>2,shiro 衔接束缚装备filterChainDefinitions;
   */
  @Bean public ShiroFilterFactoryBean shiroFilterFactoryBean(
    org.apache.shiro.mgt.SecurityManager securityManager) {
    //shiroFilterFactoryBean目标
    ShiroFilterFactoryBean shiroFilterFactoryBean = new ShiroFilterFactoryBean();

    // 装备shiro安全办理器 SecurityManager
    shiroFilterFactoryBean.setSecurityManager(securityManager);

    // 指定要求登录时的链接
    shiroFilterFactoryBean.setLoginUrl("/login");
    // 登录成功后要跳转的链接
    shiroFilterFactoryBean.setSuccessUrl("/index");
    // 未授权时跳转的界面;
    shiroFilterFactoryBean.setUnauthorizedUrl("/403");

    // filterChainDefinitions阻拦器
    Map<String, String> filterChainDefinitionMap = new LinkedHashMap<String, String>();
    // 装备不会被阻拦的链接 从上向下次序判别
    filterChainDefinitionMap.put("/static/**", "anon");
    filterChainDefinitionMap.put("/templates/**", "anon");

    // 装备退出过滤器,详细的退出代码Shiro现已替咱们完成了
    filterChainDefinitionMap.put("/logout", "logout");
    //add操作,该用户有必要有【addOperation】权限
    filterChainDefinitionMap.put("/add", "perms[addOperation]");

    // <! authc:一切url都有必要认证经过才能够拜访; anon:一切url都都能够匿名拜访【放行】>
    filterChainDefinitionMap.put("/user/**", "authc");

    shiroFilterFactoryBean
      .setFilterChainDefinitionMap(filterChainDefinitionMap);
    logger.debug("Shiro阻拦器工厂类注入成功");
    return shiroFilterFactoryBean;
  }

  /**
   * shiro安全办理器设置realm认证
   * @return
   */
  @Bean public org.apache.shiro.mgt.SecurityManager securityManager() {
    DefaultWebSecurityManager securityManager = new DefaultWebSecurityManager();
    // 设置realm.
    securityManager.setRealm(shiroRealm());
    // //注入ehcache缓存办理器;
    securityManager.setCacheManager(ehCacheManager());
    return securityManager;
  }

  /**
   * 身份认证realm; (账号暗码校验;权限等)
   *
   * @return
   */
  @Bean public ShiroRealm shiroRealm() {
    ShiroRealm shiroRealm = new ShiroRealm();
    return shiroRealm;
  }

  /**
   * ehcache缓存办理器;shiro整合ehcache:
   * 经过安全办理器:securityManager
   * @return EhCacheManager
   */
  @Bean public EhCacheManager ehCacheManager() {
    logger.debug(
      "=shiro整合ehcache缓存:ShiroConfiguration.getEhCacheManager()");
    EhCacheManager cacheManager = new EhCacheManager();
    cacheManager.setCacheManagerConfigFile("classpath:config/ehcache.xml");
    return cacheManager;
  }

}

Filter Chain界说阐明:

ShiroRealm认证实体类

/**
 * @项目称号:wyait-manage
 * @包名:com.wyait.manage.shiro
 * @类描绘:
 * @创立人:wyait
 * @创立时刻:2017-12-13 13:53
 * @version:V1.0
 */
public class ShiroRealm extends AuthorizingRealm {
  @Override protected AuthorizationInfo doGetAuthorizationInfo(
    PrincipalCollection principalCollection) {
    //TODO
    return null;
  }

  @Override protected AuthenticationInfo doGetAuthenticationInfo(
    AuthenticationToken authenticationToken)
    throws AuthenticationException {
    //TODO
    return null;
  }
}
shiro运用ehcache缓存
  1. 导入依靠;
<!shiro增加ehcache缓存 >
<dependency>
  <groupId>org.apache.shiro</groupId>
  <artifactId>shiro-ehcache</artifactId>
  <version>1.2.6</version>
</dependency>
<!
 包括支撑UI模版(Velocity,FreeMarker,JasperReports),
 邮件效劳,
 脚本效劳(JRuby),
 缓存Cache(EHCache),
 使命方案Scheduling(uartz)。
>
<dependency>
  <groupId>org.springframework</groupId>
  <artifactId>spring-context-support</artifactId>
</dependency>
  1. 引进ehcache.xml装备文件;
<ehcache>
  <diskStore path="java.io.tmpdir"/>
  <defaultCache
    maxElementsInMemory="10000"
    timeToIdleSeconds="120"
    timeToLiveSeconds="120"
    maxElementsOnDisk="10000000"
    diskExpiryThreadIntervalSeconds="120"
    memoryStoreEvictionPolicy="LRU">
  </defaultCache>
  <! 设定缓存的默许数据过期战略 >
  <cache name="shiro"
     maxElementsInMemory="10000"
     timeToIdleSeconds="120"
     timeToLiveSeconds="120"
     maxElementsOnDisk="10000000"
     diskExpiryThreadIntervalSeconds="120"
     memoryStoreEvictionPolicy="LRU">
  </cache>
</ehcache>
  1. shiro装备类中整合ehcache做缓存办理;【参阅:shiro装备实体类】 整合thymeleaf
    • 导入pom依靠
<!thymeleaf依靠>
<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
  • 装备中禁用缓存
#封闭thymeleaf缓存
spring.thymeleaf.cache=false
  • springboot整合thymeleaf模版装备详解:
参数 介绍
spring.thymeleaf.cache = true 启用模板缓存(开发时主张封闭)
spring.thymeleaf.check-template = true 检查模板是否存在,然后再出现
spring.thymeleaf.check-template-location = true 检查模板方位是否存在
spring.thymeleaf.content-type = text/html Content-Type值
spring.thymeleaf.enabled = true 启用MVC Thymeleaf视图分辨率
spring.thymeleaf.encoding = UTF-8 模板编码
spring.thymeleaf.excluded-view-names = 应该从处理方案中扫除的视图称号的逗号分隔列表
spring.thymeleaf.mode = HTML5 应用于模板的模板形式。另请拜见StandardTemplateModeHandlers
spring.thymeleaf.prefix = classpath:/templates/ 在构建URL时预先检查称号的前缀(默许/templates/)
spring.thymeleaf.suffix = .html 构建URL时附加检查称号的后缀
spring.thymeleaf.template-resolver-order = 链中模板解析器的次序
spring.thymeleaf.view-names = 能够解析的视图称号的逗号分隔列表

org.springframework.boot.autoconfigure.thymeleaf.ThymeleafProperties类里边有thymeleaf的默许装备。
默许页面映射途径为classpath:/templates/*.html

  1. 在shiroConfig里边增加cookie装备
    • CookieRememberMeManager装备;
/**
   * 设置记住我cookie过期时刻
   * @return
   */
  @Bean
  public SimpleCookie remeberMeCookie(){
    logger.debug("记住我,设置cookie过期时刻!");
    //cookie称号;对应前端的checkbox的name = rememberMe
    SimpleCookie scookie=new SimpleCookie("rememberMe");
    //记住我cookie收效时刻1小时 ,单位秒  [1小时]
    scookie.setMaxAge(3600);
    return scookie;
  }
  // 装备cookie记住我办理器
  @Bean
  public CookieRememberMeManager rememberMeManager(){
    logger.debug("装备cookie记住我办理器!");
    CookieRememberMeManager cookieRememberMeManager=new CookieRememberMeManager();
    cookieRememberMeManager.setCookie(remeberMeCookie());
    return cookieRememberMeManager;
  }
  • 将CookieRememberMeManager注入SecurityManager
//注入Cookie记住我办理器
    securityManager.setRememberMeManager(rememberMeManager());
  1. 前端页面新增rememberMe复选框
<input type="checkbox" name="rememberMe" lay-skin="primary"  />
  1. 登录办法更改
//新增rememberMe参数
@RequestParam(value="rememberMe",required = false)boolean rememberMe
... ...
// 1、 封装用户名、暗码、是否记住我到token令牌目标  [支撑记住我]
AuthenticationToken token = new UsernamePasswordToken(
    user.getMobile(),  DigestUtils.md5Hex(user.getPassword()),rememberMe);
  1. 页面cookie设置
shiro功用之暗码过错次数约束

针对用户在登录时用户名和暗码输入过错进行次数约束,并确定;
Shiro顶用户名暗码的验证交给了CredentialsMatcher;
在CredentialsMatcher里边校验用户暗码,运用ehcache记载登录失利次数就能够完成。

  • 装备shiroDirect
@Bean  
public ShiroDialect shiroDialect(){  
  return new ShiroDialect();
}

这段代码放在ShiroConfig装备类里边即可。

整合pageHelper

  • 导入pom依靠
<dependency>
  <! pageHelper分页插件 >
  <groupId>com.github.pagehelper</groupId>
  <artifactId>pagehelper-spring-boot-starter</artifactId>
  <version>1.2.3</version>
</dependency>
  • 增加装备
# pagehelper参数装备
pagehelper.helperDialect=mysql
pagehelper.reasonable=true
pagehelper.supportMethodsArguments=true
pagehelper.returnPageInfo=check
pagehelper.params=count=countSql
  • 代码中运用
//PageHelper放在查询办法前即可
PageHelper.startPage(page, limit);
List<UserRoleDTO> urList = userMapper.getUsers(userSearch);
... ...
//获取分页查询后的pageInfo目标数据
PageInfo<UserRoleDTO> pageInfo = new PageInfo<>(urList);
//pageInfo中获取到的总记载数total:
pageInfo.getTotal();

PageInfo目标中的数据和用法,详见源码!

数据源装备 单库(数据源)装备

spring boot默许自动加载单库装备,只需求在application.properties文件中增加mysql装备即可;

# mysql
spring.datasource.url=jdbc:mysql://localhost:3306/wyait?useUnicode=true&zeroDateTimeBehavior=convertToNull&characterEncoding=utf8&autoReconnect=true&allowMultiQueries=true
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
# 运用druid衔接池  需求留意的是:spring.datasource.type旧的spring boot版本是不能辨认的。
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
# mybatis
mybatis.type-aliases-package=com.wyait.manage.pojo
mybatis.mapper-locations=classpath:mapper/*.xml
# 敞开驼峰映射
mybatis.configuration.map-underscore-to-camel-case=true
多数据源装备 办法一:运用spring加载装备,注册bean的逻辑进行多数据源装备
  • 装备文件:
# 多数据源装备
slave.datasource.names=test,test1
slave.datasource.test.driverClassName =com.mysql.jdbc.Driver
slave.datasource.test.url=jdbc:mysql://localhost:3306/test?useUnicode=true&zeroDateTimeBehavior=convertToNull&characterEncoding=utf8&autoReconnect=true&allowMultiQueries=true
slave.datasource.test.username=root
slave.datasource.test.password=123456
# test1
slave.datasource.test1.driverClassName =com.mysql.jdbc.Driver
slave.datasource.test1.url=jdbc:mysql://localhost:3306/test1?useUnicode=true&zeroDateTimeBehavior=convertToNull&characterEncoding=utf8&autoReconnect=true&allowMultiQueries=true
slave.datasource.test1.username=root
slave.datasource.test1.password=123456
  • 装备类
/**
 * @项目称号:wyait-manage
 * @类称号:MultipleDataSource
 * @类描绘:创立多数据源注册到Spring中
 * @创立人:wyait
 * @创立时刻:2017年 下午2:49:34 
 * @version:
 */
//@Configuration
@SuppressWarnings("unchecked")
public class MultipleDataSource implements BeanDefinitionRegistryPostProcessor,EnvironmentAware{
  //作用域目标.
  private ScopeMetadataResolver scopeMetadataResolver = new AnnotationScopeMetadataResolver();
  //bean称号生成器.
  private BeanNameGenerator beanNameGenerator = new AnnotationBeanNameGenerator();
  //如装备文件中未指定数据源类型,运用该默许值
  private static final Object DATASOURCE_TYPE_DEFAULT = "com.alibaba.druid.pool.DruidDataSource";
  // 寄存DataSource装备的调集;
  private Map<String, Map<String, Object>> dataSourceMap = new HashMap<String, Map<String, Object>>();

  @Override
  public void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) throws BeansException {
  System.out.println("MultipleDataSourceBeanDefinitionRegistryPostProcessor.postProcessBeanFactory()");
   //设置为主数据源;
   beanFactory.getBeanDefinition("dataSource").setPrimary(true);
   if(!dataSourceMap.isEmpty()){
     //不为空的时分.
     BeanDefinition bd = null;
    Map<String, Object> dsMap = null;
    MutablePropertyValues mpv = null;
    for (Entry<String, Map<String, Object>> entry : dataSourceMap.entrySet()) {
       bd = beanFactory.getBeanDefinition(entry.getKey());
       mpv = bd.getPropertyValues();
       dsMap = entry.getValue();
       mpv.addPropertyValue("driverClassName", dsMap.get("driverClassName"));
       mpv.addPropertyValue("url", dsMap.get("url"));
       mpv.addPropertyValue("username", dsMap.get("username"));
       mpv.addPropertyValue("password", dsMap.get("password"));
    }
   }
  }

  @Override
  public void postProcessBeanDefinitionRegistry(BeanDefinitionRegistry registry) throws BeansException {
  System.out.println("MultipleDataSourceBeanDefinitionRegistryPostProcessor.postProcessBeanDefinitionRegistry()");
   try {
     if(!dataSourceMap.isEmpty()){
      //不为空的时分,进行注册bean.
      for(Entry<String,Map<String,Object>> entry:dataSourceMap.entrySet()){
      Object type = entry.getValue().get("type");//获取数据源类型
      if(type  null){
       type= DATASOURCE_TYPE_DEFAULT;
      }
      registerBean(registry, entry.getKey(),(Class<? extends DataSource>)Class.forName(type.toString()));
      }
     }
   } catch (ClassNotFoundException  e) {
     //反常捕捉.
     e.printStackTrace();
   }
  }
  /**
   * 留意重写的办法 setEnvironment 是在体系启动的时分被执行。
   * 这个办法主要是:加载多数据源装备
   * 从application.properties文件中进行加载;
   */
  @Override
  public void setEnvironment(Environment environment) {
  System.out.println("MultipleDataSourceBeanDefinitionRegistryPostProcessor.setEnvironment()");
   /*
    * 获取application.properties装备的多数据源装备,增加到map中,之后在postProcessBeanDefinitionRegistry进行注册。
    */
   //获取到前缀是"slave.datasource." 的特点列表值.
   RelaxedPropertyResolver propertyResolver = new RelaxedPropertyResolver(environment,"slave.datasource.");
   //获取到一切数据源的称号.
   String dsPrefixs = propertyResolver.getProperty("names");
   String[] dsPrefixsArr = dsPrefixs.split(",");
   for(String dsPrefix:dsPrefixsArr){
     /*
    * 获取到子特点,对应一个map;
    * 也便是这个map的key便是
    * type、driver-class-name等;
    */
     Map<String, Object> dsMap = propertyResolver.getSubProperties(dsPrefix + ".");
     //寄存到一个map调集中,之后在注入进行运用.
     dataSourceMap.put(dsPrefix, dsMap);
   }
  }

  /**
   * 注册Bean到Spring
   */
  private void registerBean(BeanDefinitionRegistry registry, String name, Class<?> beanClass) {
    AnnotatedGenericBeanDefinition abd = new AnnotatedGenericBeanDefinition(beanClass);
    ScopeMetadata scopeMetadata = this.scopeMetadataResolver.resolveScopeMetadata(abd);
    abd.setScope(scopeMetadata.getScopeName());
    // 能够自动生成name
    String beanName = (name != null ? name : this.beanNameGenerator.generateBeanName(abd, registry));
    AnnotationConfigUtils.processCommonDefinitionAnnotations(abd);
    BeanDefinitionHolder definitionHolder = new BeanDefinitionHolder(abd, beanName);
    BeanDefinitionReaderUtils.registerBeanDefinition(definitionHolder, registry);
  }
}

接口:BeanDefinitionRegistryPostProcessor只要是注入bean,
接口:接口 EnvironmentAware 重写办法 setEnvironment ; 能够在工程启动时,获取到体系环境变量和application装备文件中的变量。

该装备类的加载次序是:
setEnvironment()>postProcessBeanDefinitionRegistry() > postProcessBeanFactory()

办法二:运用装备类

注释掉spring.datasource数据衔接装备以及mybatis扫码包和加载xml装备等,一致运用装备类进行装备完成;application.properties中的数据源装备,spring加载时默许是单数据源装备,所以相关的装备都注释掉,一致运用Config装备类进行装备!详细装备办法如下:

  • 装备文件
# 多数据源装备
#slave.datasource.names=test,test1
slave.datasource.test.driverClassName =com.mysql.jdbc.Driver
slave.datasource.test.url=jdbc:mysql://localhost:3306/test?useUnicode=true&zeroDateTimeBehavior=convertToNull&characterEncoding=utf8&autoReconnect=true&allowMultiQueries=true
slave.datasource.test.username=root
slave.datasource.test.password=123456
# test1
slave.datasource.test1.driverClassName =com.mysql.jdbc.Driver
slave.datasource.test1.url=jdbc:mysql://localhost:3306/test1?useUnicode=true&zeroDateTimeBehavior=convertToNull&characterEncoding=utf8&autoReconnect=true&allowMultiQueries=true
slave.datasource.test1.username=root
slave.datasource.test1.password=123456
# mybatis
#mybatis.type-aliases-package=com.wyait.manage.pojo
#mybatis.mapper-locations=classpath:mapper/*.xml
# 敞开驼峰映射
#mybatis.configuration.map-underscore-to-camel-case=true
  • 装备类
    多数据源多个装备类:
    榜首个数据源test装备DataSourceConfig:
/**
 * @项目称号:wyait-common
 * @包名:com.wyait.manage.config
 * @类描绘:数据源装备
 * @创立人:wyait
 * @创立时刻:2018-02-27 13:33
 * @version:V1.0
 */
@Configuration
//指明晰扫描dao层,并且给dao层注入指定的SqlSessionTemplate
@MapperScan(basePackages = "com.wyait.manage.dao", sqlSessionTemplateRef  = "testSqlSessionTemplate")
public class DataSourceConfig {
  /**
   * 创立datasource目标
   * @return
   */
  @Bean(name = "testDataSource")
  @ConfigurationProperties(prefix = "slave.datasource.test")// prefix值有必要是application.properteis中对应特点的前缀
  @Primary
  public DataSource testDataSource() {
    return DataSourceBuilder.create().build();
  }

  /**
   * 创立sql工程
   * @param dataSource
   * @return
   * @throws Exception
   */
  @Bean(name = "testSqlSessionFactory")
  @Primary
  public SqlSessionFactory testSqlSessionFactory(@Qualifier("testDataSource") DataSource dataSource) throws Exception {
    SqlSessionFactoryBean bean = new SqlSessionFactoryBean();
    bean.setDataSource(dataSource);
    //对应mybatis.type-aliases-package装备
    bean.setTypeAliasesPackage("com.wyait.manage.pojo");
    //对应mybatis.mapper-locations装备
    bean.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("classpath:mapper/*.xml"));
    //敞开驼峰映射
    bean.getObject().getConfiguration().setMapUnderscoreToCamelCase(true);
    return bean.getObject();
  }

  /**
   * 装备事务办理
   * @param dataSource
   * @return
   */
  @Bean(name = "testTransactionManager")
  @Primary
  public DataSourceTransactionManager testTransactionManager(@Qualifier("testDataSource") DataSource dataSource) {
    return new DataSourceTransactionManager(dataSource);
  }

  /**
   * sqlSession模版,用于装备自动扫描pojo实体类
   * @param sqlSessionFactory
   * @return
   * @throws Exception
   */
  @Bean(name = "testSqlSessionTemplate")
  @Primary
  public SqlSessionTemplate testSqlSessionTemplate(@Qualifier("testSqlSessionFactory") SqlSessionFactory sqlSessionFactory) throws Exception {
    return new SqlSessionTemplate(sqlSessionFactory);
  }
}

第二个数据源test1,TestDataSourceConfig装备类

/**
 * @项目称号:wyait-common
 * @包名:com.wyait.manage.config
 * @类描绘:数据源装备
 * @创立人:wyait
 * @创立时刻:2018-02-27 13:33
 * @version:V1.0
 */
//@Configuration
//指明晰扫描dao层,并且给dao层注入指定的SqlSessionTemplate
@MapperScan(basePackages = "com.wyait.manage.test1", sqlSessionTemplateRef  = "test1SqlSessionTemplate")
public class TestDataSourceConfig {
  /**
   * 创立datasource目标
   * @return
   */
  @Bean(name = "test1DataSource")
  @ConfigurationProperties(prefix = "slave.datasource.test1")// prefix值有必要是application.properteis中对应特点的前缀
  public DataSource test1DataSource() {
    return DataSourceBuilder.create().build();
  }

  /**
   * 创立sql工程
   * @param dataSource
   * @return
   * @throws Exception
   */
  @Bean(name = "test1SqlSessionFactory")
  public SqlSessionFactory test1SqlSessionFactory(@Qualifier("test1DataSource") DataSource dataSource) throws Exception {
    SqlSessionFactoryBean bean = new SqlSessionFactoryBean();
    bean.setDataSource(dataSource);
    //对应mybatis.type-aliases-package装备
    bean.setTypeAliasesPackage("com.wyait.manage.pojo");
    bean.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("classpath:mapper/*.xml"));
    //敞开驼峰映射
    bean.getObject().getConfiguration().setMapUnderscoreToCamelCase(true);
    return bean.getObject();
  }

  /**
   * 装备事务办理
   * @param dataSource
   * @return
   */
  @Bean(name = "test1TransactionManager")
  public DataSourceTransactionManager test1TransactionManager(@Qualifier("test1DataSource") DataSource dataSource) {
    return new DataSourceTransactionManager(dataSource);
  }

  /**
   * sqlSession模版,用于装备自动扫描pojo实体类
   * @param sqlSessionFactory
   * @return
   * @throws Exception
   */
  @Bean(name = "test1SqlSessionTemplate")
  public SqlSessionTemplate test1SqlSessionTemplate(@Qualifier("test1SqlSessionFactory") SqlSessionFactory sqlSessionFactory) throws Exception {
    return new SqlSessionTemplate(sqlSessionFactory);
  }
}
  • //TODO 创立不同的数据表和对应的查询办法进行测验;
界面作用 登录界面

索尼一代表对《文娱周刊》泄漏说,现在《龙纹身的女孩》续集筹备作业仍在进行,编剧Steven Zaillian正在依照原方案创造剧本。不过他没有泄漏导演大卫·芬奇(David Fincher)是否会持续执导续集。

  据悉,索尼现已约请编剧卡瑞-柯克帕特里克(Karey Kirkpatrick)和克里斯-帕切(Chris Poche)持续为这些蓝色的心爱小家伙书写新的冒险华章。不过能否真实开拍还要看《蓝精灵2》的体现。

《誓约》 1535 1535 索尼/Screen Gems

  这不是榜首起。往前回忆。1989年,索尼斥资32亿美元收买好莱坞八大之一的哥伦比亚电影公司。2005年,索尼又联合几家出资组织花48亿美元买下已破产的米高梅。

                                                        索尼哥伦比亚是现在的好莱坞五大之一 

  当年,美国人都认为日本人傻了,花钱收烂摊子。一开始运营的确不顺利,但终究证明,这笔收买是合算的。索尼现在是好莱坞六大里的代表公司。索尼出品的许多电影里,都能看到它自家产品的广告。

  哥伦比亚便是那个女神手里拿着火炬的公司,出品过《肖申克的救赎》、《当美好来敲门》、《黑衣人》、《蜘蛛侠》等著作。

明星网 ,索尼动画《精灵旅社3:张狂假日》发布新预告,这次吸血鬼德古拉一大家子登上奢华怪物游轮休假,老爸迷上了奥秘女船长Ericka,总算又恋爱了。

  据悉索尼将罗致《死侍》《金刚狼》等R级影片的成功事例,也会打形成R级,并会带有相似《机械战警》《终结者》《世界威龙》等80时代经典影片的风格。 索尼方案依据《勇士漫画》中的《喋血兵士》和《前驱勇士》打造五部电影,组成一个世界。

由于拒绝了公司的退休方案,一名名为Shusaku Tani的51岁索尼工厂职工在曩昔两年以来一直都无所事事。现在,Shusaku Tani每天的作业便是前往工厂内的一个小屋子签到,他会坐在一张小椅子上经过看报纸、阅览网页或许阅览一些此前的工程学书本来打发时刻。不过,现已在索尼作业了32年的Shusaku Tani仍然会鄙人班前关于自己每天的“作业”整理出一份陈述。

对此,索尼表明自己将部分职工放进这个所谓的“职业规划室”(Career Design Rooms)并没有什么不当,由于公司会协助这个“规划室”内的职工在索尼集团内部或许其他公司另谋出路。并且,索尼还向这部分职工供给了非常大方的提前退休方案,挑选提前退休的职工能够最多拿到54个月的薪水。不过,外界剖析认为索尼此举的真实目的是让这些职工感到“被遗弃”以及“没有个人价值”,并迫使他们在感到过于无聊,且受不了这种羞耻后自动挑选离任。

索尼工会主席Takaaki Matsuda表明:“这不应该成为日本的未来发展方向。”

ORDER BY DECODE(ppmc, 海尔,1,联想,2,索尼,3)

索尼一代表对文娱周刊泄漏说现在龙纹身的女孩续集筹备作业仍在进行编剧正在依照原方案创造剧本不过他没有泄漏导演大卫芬奇是否会持续执导续集。

誓约索尼。

据悉索尼现已约请编剧卡瑞柯克帕特里克和克里斯帕切持续为这些蓝色的心爱小家伙书写新的冒险华章不过能否真实开拍还要看蓝精灵的体现。

这不是榜首起往前回忆年索尼斥资亿美元收买好莱坞八大之一的哥伦比亚电影公司年索尼又联合几家出资组织花亿美元买下已破产的米高梅。

索尼哥伦比亚是现在的好莱坞五大之一。

当年美国人都认为日本人傻了花钱收烂摊子一开始运营的确不顺利但终究证明这笔收买是合算的索尼现在是好莱坞六大里的代表公司索尼出品的许多电影里都能看到它自家产品的广告哥伦比亚便是那个女神手里拿着火炬的公司出品过肖申克的救赎当美好来敲门黑衣人蜘蛛侠等著作。

明星网月日索尼动画精灵旅社张狂假日发布新预告这次吸血鬼德古拉一大家子登上奢华怪物游轮休假老爸迷上了奥秘女船长总算又恋爱了。

据悉索尼将罗致死侍金刚狼等级影片的成功事例也会打形成级并会带有相似机械战警终结者世界威龙等时代经典影片的风格索尼方案依据勇士漫画中的喋血兵士和前驱勇士打造五部电影组成一个世界。


ICP备74920727512722 联系地址:上海市宝山区陆翔路111弄6号楼4732室 客服电话:021-73353763 Copyright©2008-2016 版权所有 上海市凯发娱乐科技有限公司 网站地图 法律声明隐私保护招聘英才意见反馈

Powered by 凯发娱乐 Copyright ©2010 https://www.jufenba.cn (GROUP) CO.,LTD. All Right Reserved.

公网安备 87786926