专栏电商日志财经减肥爱情
投稿投诉
爱情常识
搭配分娩
减肥两性
孕期塑形
财经教案
论文美文
日志体育
养生学堂
电商科学
头戴业界
专栏星座
用品音乐

Spring注解编程

  Spring多文件配置处理
  通配符方式非web环境ApplicationContextctxnewClassPathXmlApplicationContext(applicationContext。xml);web环境contextparamparamnamecontextConfigLocationparamnameparamvalueclasspath:applicationContext。xmlparamvaluecontextparamimport标签applicationContext。xml整合其他配置内容importresourceapplicationContextdao。xmlimportresourceapplicationContextservice。xml。。。非web环境ApplicationContextctxnewClassPathXmlApplicationContext(applicationContext。xml);web环境contextparamparamnamecontextConfigLocationparamnameparamvalueclasspath:applicationContext。xmlparamvaluecontextparam接口的契约性
  注解的契约性
  Spring的基础注解
  在Spring框架应用注解时,如果对注解配置的内容不满意,可以通过Spring配置文件进行覆盖。对象创建相关注解
  》》》搭建开发环境!让Spring框架在设置包及其子包中扫描对应的注解,使其生效context:componentscanbasepackagecom。demo
  》》》对象相关注解
  1)Component:替换原有Spring配置文件中bean标签显示指定工厂创建对象的id值:Component(u);
  Spring配置文件覆盖注解配置内容:
  2)Component的衍生注解以下三种注解能更加准确的表达一个类型的作用
  Repository》XXXDAO
  Service》XXXService
  Controller
  注意:本质上这些衍生注解就是Component,作用、细节、用法完全一致
  Spring整合MyBatis开发过程中,不使用Repository、Component,原因是DAO的对象是动态代理创建的
  3)Scope:控制简单对象创建次数
  注意:不添加ScopeSpring提供默认值singleton
  4)Lazy:延迟创建单实例对象
  注意:使用Lazy注解后,Spring使用这个对象的时候,才会进行对象的创建
  5)生命周期相关注解
  注入相关注解
  》》》Autowired用户自定义类型
  Autowired基于类型进行注入:注入对象的类型,必须与目标成员变量类型相同或者是其子类(实现类)推荐
  AutowiredQualifier基于名字进行注入
  Autowired放置位置
  a)放置在对应成员变量的set方法上
  b)放置在成员变量之上,Spring通过反射直接对成员变量进行注入(赋值)推荐
  JavaEE规范中类似功能的注解
  JSR250Resource(nameuserDAOImpl)基于名字进行注入
  Autowired()
  Qualifier(userDAOImpl)
  注意:如果在应用Resource注解时,名字没有配对成功,那么会继续按照类型进行注入
  JSR330Inject作用Autowired完全一致基于类型进行注入EJB3。0dependencygroupIdjavax。injectgroupIdjavax。injectartifactIdversion1versiondependency
  》》》JDK类型
  1)Value注解不能应用在静态成员变量上,否则赋值(注入)失败
  该注解Properties这种方式,不能注入集合类型,YMALYML配置方式替代
  2)PropertySource
  注解扫描当前包及其子包context:componentscanbasepackagecom。demo
  》》》排除方式
  》》》包含方式
  注解开发的思考
  》》》配置互通
  》》》注解和配置文件使用的条件程序员自己开发的类型,可以加入对应的注解,进行对象创建。
  非程序员开发的类型,需要配置文件(bean标签来完成)进行配置。(如:SqlSessionFactoryBean、MapperScannerConfigure)SSM半注解DAO(SpringMyBatis)
  Service
  ControllerSpring的高级注解配置Bean
  Configuration实际上是Component的衍生注解
  》》》配置日志
  基于注解开发,不能集成log4j,发现没有日志打印
  基于注解开发,集成的是logback!引入logback相关依赖dependencygroupIdorg。slf4jgroupIdslf4japiartifactIdversion1。7。25versiondependencydependencygroupIdorg。slf4jgroupIdjcloverslf4jartifactIdversion1。7。25versiondependencydependencygroupIdch。qos。logbackgroupIdlogbackclassicartifactIdversion1。2。3versiondependencydependencygroupIdch。qos。logbackgroupIdlogbackcoreartifactIdversion1。2。3versiondependencydependencygroupIdorg。logbackextensionsgroupIdlogbackextspringartifactIdversion0。1。4versiondependency!resources目录下创建logback。xml配置文件lt;?xmlversion1。0encodingUTF8?configurationencoder!格式化输出:d:日期thread:线程名5level:级别从左显示5个字符宽度msg:日志消息n:换行符patternd{yyyyMMddHH:mm:ss。SSS}〔thread〕5levellogger{50}msgnpatternencoderappenderrootlevelDEBUGrootconfigurationAnnotationConfigApplicationContext
  Bean注解
  等同于XML配置文件中bean标签
  》》》对象的创建简单对象:直接通过new方式创建的对象
  复杂对象:不能通过new方式创建的对象(如:Connection,SqlSessionFactory)
  packagecom。demo;importcom。demo。bean。User;importorg。springframework。context。annotation。Bean;importorg。springframework。context。annotation。Configuration;importjava。sql。Connection;importjava。sql。DriverManager;importjava。sql。SQLException;ConfigurationpublicclassAppConfig{简单对象returnBeanpublicUseruser(){returnnewUser();}复杂对象(推荐使用)Connection不能直接通过new创建returnBeanpublicConnectionconn(){Connectionconnnull;try{Class。forName(com。mysql。cj。jdbc。Driver);connDriverManager。getConnection(jdbc:mysql:192。168。XXX。222:3306ssmdb?useSSLfalse,root,root);}catch(ClassNotFoundExceptione){e。printStackTrace();}catch(SQLExceptionthrowables){throwables。printStackTrace();}returnconn;}}packagecom。demo。bean;importorg。springframework。beans。factory。FactoryBean;importjava。sql。Connection;importjava。sql。DriverManager;publicclassConnectionFactoryBeanimplementsFactoryBeanConnection{OverridepublicConnectiongetObject()throwsException{Class。forName(com。mysql。cj。jdbc。Driver);ConnectionconnDriverManager。getConnection(jdbc:mysql:192。168。XXX。222:3306ssmdb?useSSLfalse,root,root);returnconn;}OverridepublicClasslt;?getObjectType(){returnConnection。class;}OverridepublicbooleanisSingleton(){returnfalse;}}遗留系统使用该方式创建很少自己写ConnectionFactoryBean,来创建复杂对象returnBeanpublicConnectionconn(){Connectionconnnull;try{ConnectionFactoryBeanfactoryBeannewConnectionFactoryBean();connfactoryBean。getObject();}catch(Exceptione){e。printStackTrace();}returnconn;}
  》》》自定义id值
  Bean(id)
  》》》控制对象创建次数Bean
  Scope(singletonprototype)默认值singletonBean注解的注入
  》》》用户自定义注入packagecom。demo;importcom。demo。injection。UserDAO;importcom。demo。injection。UserDAOImpl;importcom。demo。injection。UserService;importcom。demo。injection。UserServiceImpl;importorg。springframework。context。annotation。Bean;importorg。springframework。context。annotation。Configuration;ConfigurationpublicclassAppConfig{BeanpublicUserDAOuserDAO(){returnnewUserDAOImpl();}BeanpublicUserServiceuserService(UserDAOuserDAO){UserServiceImpluserServicenewUserServiceImpl();userService。setUserDAO(userDAO);returnuserService;}}packagecom。demo;importcom。demo。injection。UserDAO;importcom。demo。injection。UserDAOImpl;importcom。demo。injection。UserService;importcom。demo。injection。UserServiceImpl;importorg。springframework。context。annotation。Bean;importorg。springframework。context。annotation。Configuration;ConfigurationpublicclassAppConfig{BeanpublicUserDAOuserDAO(){returnnewUserDAOImpl();}简化写法(没有把userDAO作为形参传入)BeanpublicUserServiceuserService(){UserServiceImpluserServicenewUserServiceImpl();userService。setUserDAO(userDAO());returnuserService;}}
  》》》JDK类型注入BeanpublicCustomercustomer(){CustomercustomernewCustomer();硬代码耦合customer。setId(1);customer。setName(zhangsan);returncustomer;}packagecom。demo;importcom。demo。bean。Customer;importorg。springframework。beans。factory。annotation。Value;importorg。springframework。context。annotation。Bean;importorg。springframework。context。annotation。Configuration;importorg。springframework。context。annotation。PropertySource;读取配置文件init。properties,解决耦合问题ConfigurationPropertySource(classpath:init。properties)publicclassAppConfig{Value({id})privateIntegerid;Value({name})privateStringname;BeanpublicCustomercustomer(){CustomercustomernewCustomer();customer。setId(id);customer。setName(name);returncustomer;}}ComponentScan注解ComponentScan等同于XML配置文件中的标签
  目的:扫描注解(如:Component、Value、Autowired。。。)
  》》》排除、包含的使用
  1)排除
  2)包含
  Spring多种配置方式
  》》》配置优先级配置文件bean标签BeanComponent及其衍生注解
  优先级高的配置覆盖优先级低的配置
  配置的优先级能解决耦合问题
  ApplicationContextctxnewAnnotationConfigApplicationContext(AppConfig4。class,AppConfig5。class);ApplicationContextctxnewAnnotationConfigApplicationContext(com。demo。config);多个配置信息
  》》》多配置信息整合
  多个配置Bean的整合
  1)basepackage进行多个配置Bean的整合
  2)Import
  1。可以创建对象
  2。多配置bean的整合
  3)指定多个配置Bean的Class对象ApplicationContextctxnewAnnotationConfigApplicationContext(AppConfig1。class,AppConfig2。class,。。。);
  配置Bean与Component相关注解的整合
  配置Bean与SpringXML配置文件的整合
  跨配置的注入
  配置Bean底层实现原理
  Spring在配置Bean中加入了Configuration注解后,底层就会通过CGlib的代理方式,来进行对象相关的配置、处理四维一体的开发思想
  基于schema
  基于特定功能注解推荐
  基于原始beanbeannameclassorg。springframework。context。support。PropertySourcesPlaceholderConfigurerpropertynamelocationvalueclasspath:init。propertiesbean
  基于Bean注解推荐packagecom。demo;importorg。springframework。context。annotation。;importorg。springframework。context。support。PropertySourcesPlaceholderConfigurer;importorg。springframework。core。io。ClassPathResource;ConfigurationComponentScan(basePackagescom。demo)publicclassAppConfig{BeanpublicPropertySourcesPlaceholderConfigurerconfigurer(){PropertySourcesPlaceholderConfigurerconfigurernewPropertySourcesPlaceholderConfigurer();configurer。setLocation(newClassPathResource(init。properties));returnconfigurer;}}纯注解版AOP编程
  packagecom。demo。aop;publicinterfaceUserService{voidregister();voidlogin();}packagecom。demo。aop;importorg。springframework。stereotype。Service;ServicepublicclassUserServiceImplimplementsUserService{Overridepublicvoidregister(){System。out。println(UserServiceImpl。register);}Overridepublicvoidlogin(){System。out。println(UserServiceImpl。login);}}packagecom。demo。aop;importorg。aspectj。lang。ProceedingJoinPoint;importorg。aspectj。lang。annotation。Around;importorg。aspectj。lang。annotation。Aspect;importorg。aspectj。lang。annotation。Pointcut;importorg。springframework。stereotype。Component;AspectComponentpublicclassMyAspect{Pointcut(execution(com。demo。aop。。。(。。)))publicvoidpointCut(){}Around(pointCut())publicObjectarroud(ProceedingJoinPointjoinPoint)throwsThrowable{System。out。println(Log);ObjectproceedjoinPoint。proceed();returnproceed;}}packagecom。demo。aop;importorg。springframework。context。annotation。ComponentScan;importorg。springframework。context。annotation。Configuration;importorg。springframework。context。annotation。EnableAspectJAutoProxy;ConfigurationComponentScan(basePackagescom。demo。aop)EnableAspectJAutoProxypublicclassAOPConfig{}
  》》》注解AOP细节分析SpringAOP代理默认:JDK
  SpringBootAOP代理默认:CGlib
  纯注解版SpringMyBatis整合基础配置(配置Bean)
  packagecom。demo。mybatis;importcom。alibaba。druid。pool。DruidDataSource;importorg。mybatis。spring。SqlSessionFactoryBean;importorg。mybatis。spring。annotation。MapperScan;importorg。springframework。context。annotation。Bean;importorg。springframework。context。annotation。ComponentScan;importorg。springframework。context。annotation。Configuration;importorg。springframework。core。io。Resource;importorg。springframework。core。io。support。PathMatchingResourcePatternResolver;importorg。springframework。core。io。support。ResourcePatternResolver;importjavax。sql。DataSource;importjava。io。IOException;ConfigurationComponentScan(basePackagescom。demo。mybatis)MapperScan(basePackagescom。demo。mybatis)publicclassMyBatisAutoConfiguration{BeanpublicDataSourcedataSource(){DruidDataSourcedataSourcenewDruidDataSource();dataSource。setDriverClassName(com。mysql。cj。jdbc。Driver);dataSource。setUrl(jdbc:mysql:192。168。30。222:3306ssmdb);dataSource。setUsername(root);dataSource。setPassword(root);returndataSource;}BeanpublicSqlSessionFactoryBeansqlSessionFactoryBean(DataSourcedataSource){SqlSessionFactoryBeansqlSessionFactoryBeannewSqlSessionFactoryBean();sqlSessionFactoryBean。setDataSource(dataSource);sqlSessionFactoryBean。setTypeAliasesPackage(com。demo。mybatis);sqlSessionFactoryBean。setMapperLocations(newClassPathResource(UserDAOMapper。xml));try{ResourcePatternResolverresolvernewPathMatchingResourcePatternResolver();Resource〔〕resourcesresolver。getResources(comdemomapperMapper。xml);sqlSessionFactoryBean。setMapperLocations(resources);}catch(IOExceptione){e。printStackTrace();}returnsqlSessionFactoryBean;}}配置Bean耦合问题mybatis。driverClassNamecom。mysql。cj。jdbc。Drivermybatis。urljdbc:mysql:192。168。XXX。222:3306ssmdbmybatis。usernamerootmybatis。passwordrootmybatis。typeAliasesPackagescom。demo。mybatismybatis。mapperLocationscomdemomapperMapper。xmlpackagecom。demo。mybatis;importlombok。Data;importorg。springframework。beans。factory。annotation。Value;importorg。springframework。context。annotation。PropertySource;importorg。springframework。stereotype。Component;DataComponentPropertySource(classpath:mybatis。properties)publicclassMybatisProperties{Value({mybatis。driverClassName})privateStringdriverClassName;Value({mybatis。url})privateStringurl;Value({mybatis。username})privateStringusername;Value({mybatis。password})privateStringpassword;Value({mybatis。typeAliasesPackages})privateStringtypeAliasesPackages;Value({mybatis。mapperLocations})privateStringmapperLocations;}packagecom。demo。mybatis;importcom。alibaba。druid。pool。DruidDataSource;importorg。mybatis。spring。SqlSessionFactoryBean;importorg。mybatis。spring。annotation。MapperScan;importorg。springframework。beans。factory。annotation。Autowired;importorg。springframework。context。annotation。Bean;importorg。springframework。context。annotation。ComponentScan;importorg。springframework。context。annotation。Configuration;importorg。springframework。core。io。Resource;importorg。springframework。core。io。support。PathMatchingResourcePatternResolver;importorg。springframework。core。io。support。ResourcePatternResolver;importjavax。sql。DataSource;importjava。io。IOException;ConfigurationComponentScan(basePackagescom。demo。mybatis)MapperScan(basePackagescom。demo。mybatis)publicclassMyBatisAutoConfiguration{AutowiredprivateMybatisPropertiesmybatisProperties;BeanpublicDataSourcedataSource(){DruidDataSourcedataSourcenewDruidDataSource();dataSource。setDriverClassName(mybatisProperties。getDriverClassName());dataSource。setUrl(mybatisProperties。getUrl());dataSource。setUsername(mybatisProperties。getUsername());dataSource。setPassword(mybatisProperties。getPassword());returndataSource;}BeanpublicSqlSessionFactoryBeansqlSessionFactoryBean(DataSourcedataSource){SqlSessionFactoryBeansqlSessionFactoryBeannewSqlSessionFactoryBean();sqlSessionFactoryBean。setDataSource(dataSource);sqlSessionFactoryBean。setTypeAliasesPackage(mybatisProperties。getTypeAliasesPackages());sqlSessionFactoryBean。setMapperLocations(newClassPathResource(UserDAOMapper。xml));try{ResourcePatternResolverresolvernewPathMatchingResourcePatternResolver();Resource〔〕resourcesresolver。getResources(mybatisProperties。getMapperLocations());sqlSessionFactoryBean。setMapperLocations(resources);}catch(IOExceptione){e。printStackTrace();}returnsqlSessionFactoryBean;}}纯注解版事务编程
  packagecom。demo。mybatis;publicinterfaceUserService{voidregister(Useruser);}packagecom。demo。mybatis;importlombok。Data;importorg。springframework。beans。factory。annotation。Autowired;importorg。springframework。stereotype。Service;importorg。springframework。transaction。annotation。Transactional;DataServiceTransactionalpublicclassUserServiceImplimplementsUserService{AutowiredprivateUserDAOuserDAO;Overridepublicvoidregister(Useruser){userDAO。save(user);}}packagecom。demo。mybatis;importorg。springframework。beans。factory。annotation。Autowired;importorg。springframework。context。annotation。Bean;importorg。springframework。context。annotation。Configuration;importorg。springframework。jdbc。datasource。DataSourceTransactionManager;importorg。springframework。transaction。annotation。EnableTransactionManagement;importjavax。sql。DataSource;ConfigurationEnableTransactionManagementpublicclassTransactionAutoConfiguration{AutowiredprivateDataSourcedataSource;BeanpublicDataSourceTransactionManagerdataSourceTransactionManager(){DataSourceTransactionManagerdataSourceTransactionManagernewDataSourceTransactionManager();dataSourceTransactionManager。setDataSource(dataSource);returndataSourceTransactionManager;}}Spring中YAMLYML使用
  YML语法
  Spring与YML集成
  dependencygroupIdorg。yamlgroupIdsnakeyamlartifactIdversion2。0versiondependency
  》》》init。ymlaccount:name:zhangsanpassword:rootpackagecom。demo。yml;importlombok。Data;importorg。springframework。beans。factory。annotation。Value;importorg。springframework。stereotype。Component;DataComponentpublicclassAccount{Value({account。name)privateStringname;Value({account。password})privateStringpassword;}packagecom。demo。yml;importorg。springframework。beans。factory。config。YamlPropertiesFactoryBean;importorg。springframework。context。annotation。Bean;importorg。springframework。context。annotation。ComponentScan;importorg。springframework。context。annotation。Configuration;importorg。springframework。context。support。PropertySourcesPlaceholderConfigurer;importorg。springframework。core。io。ClassPathResource;importjava。util。Properties;ConfigurationComponentScan(basePackagescom。demo。yml)publicclassYmlAutoConfiguration{BeanpublicPropertySourcesPlaceholderConfigurerconfigurer(){YamlPropertiesFactoryBeanyamlPropertiesFactoryBeannewYamlPropertiesFactoryBean();yamlPropertiesFactoryBean。setResources(newClassPathResource(init。yml));PropertiespropertiesyamlPropertiesFactoryBean。getObject();PropertySourcesPlaceholderConfigurerconfigurernewPropertySourcesPlaceholderConfigurer();configurer。setProperties(properties);returnconfigurer;}}Spring与YML集成问题
  》》》init。ymlaccount:name:zhangsanpassword:rootlist:111,222packagecom。demo。yml;importlombok。Data;importorg。springframework。beans。factory。annotation。Value;importorg。springframework。stereotype。Component;importjava。util。List;DataComponentpublicclassAccount{Value({account。name)privateStringname;Value({account。password})privateStringpassword;Value({{list}。split(,)})privateListStringlist;}

健康多壹点丨德州疾控为阳过阳康们的春节饮食支招齐鲁壹点记者徐良在新冠感染和恢复期间,充足的营养支持非常重要,面对即将到来的春节,当阳过阳康们看到各种美食时,心中也有诸多疑问过年饮食该怎么吃?如何补充营养?亲朋相聚能不能饮酒?德易主湘潭国资,步步高明日复牌三湘都市报新湖南客户端1月15日讯(全媒体记者潘显璇)民营连锁超市第一股步步高即将易主湘潭国资,困扰上市公司的流动性难题有望得到妥善解决。今日晚间,步步高披露公告称,2023年1月确诊乳腺癌后,不要做这9件事乳腺癌治疗的过程是漫长的,当你的医生在努力与你身体里的肿瘤细胞作斗争的时候,你需要做的是要积极配合医生的治疗,改掉以前不良的习惯,树立积极的心态,促进自己的康复。(网络配图)确诊乳他终结过乔科詹,除了他还有两人终结科詹,唯独他不惧乔丹头条创作挑战赛如果说有人不畏惧乔丹,你会相信,像乔丹的死敌伊赛亚托马斯,或者他的前辈伯德和魔术师约翰逊。托马斯和伯德都曾经在季后赛赢过乔丹,但是他们没有赢过科比和詹姆斯,而联盟中有凯尔特人或3换1报价湖人威少,筹码相当有吸引力本赛季的凯尔特人经过了上赛季总决赛失利的洗礼后,球队整体迎来了蜕变,本赛季更进一步,赛季至今取得了联盟最佳的32胜12负的战绩,但去年总决赛关键时刻表现的失败仍历历在目。根据美媒著NBA论打架,克拉克森遗传了菲律宾传统,绝对算得上恐怖的存在说起NBA的打架斗殴,我们都会不约而同的想到了奥本山宫事件的主人公阿泰斯特和本华莱士,但是我觉得他们二人还不是真正爱打架的人,在他面前他们两个就是个小弟,他就是爵士队的克拉克森,虽勇士新闻7投5中,送出10记助攻!再次证明自己,勇士该留住你前言上场输给公牛队之后,勇士队在赛后所传达的一个讯号就是紧迫感。而在他们接下来对阵奇才的比赛中,这一信号异常的响亮且清晰。勇士整场比赛几乎都完全掌握着主动性,尽管最近状态最佳的汤普反垃圾邮件网关SecurityGatewayV9。0。0更新公告2023年1月10日,MDaemon公司正式发布最新版本反垃圾邮件网关SecurityGatewayV9。0。0。特殊说明事项25882默认情况下,现在包含加号()的邮箱名称将被视22!中国小将大爆发,澳网首局轻松拿下,商竣程剑指次轮1月16日上午8点,澳网公开赛男单第一轮进行焦点大战,中国小将商竣程对阵奥特。第一盘首局,奥特率先得分,然后接发球回直线进攻得分。小商接发强攻失误,随后接发失误下网。奥特外角发球直新年这么穿,轻松帮你应对各种场合!年关将至,除夕春节烟花各种美好的事情接踵而至。在这个普天同庆的节日里,想要穿得好看又出众,色彩的搭配最关键。今天,pig小姐给大家推荐四组非常适合过年穿的配色,这三组配色绝对足够让国货抄袭实锤?这些垃圾品牌你们千万别买!头条创作挑战赛要说哪个圈最卷,还得是咱们国货美妆圈。一个个在包装设计上挖空心思,不断升级质量,努力让中国制造走向世界。But,也有些国产品牌一心只想着赚快钱,从产品包装到配色都大抄
猛男就该开火箭,坦克世界新版本惊现C系近战新重坦!提到硬汉必看的电影,州长出演的终结者2必定榜上有名而说到硬汉必玩的游戏,那就不得不提到WG的坦克世界。那么,这两个宇宙交融到一起会擦出怎样的火花?天网控制坦克反攻人类?还是车长们在武则天新形象首曝,孙悟空新皮肤锁定,至尊宝大圣娶亲有望归来大家好,这里是阿呆的峡谷日记,将会给你带来王者荣耀最新的爆料内容。最近关于武则天的新皮肤也是闹得沸沸扬扬,因为有消息称这款皮肤的获得方式不一样,要比一般的皮肤贵上许多,这也让很多玩王者荣耀已经绝版的五款皮肤你拥有多少款呢,小编一个都没有!大家好,我是大司马的小棉袄。今天给大家介绍王者荣耀已经绝版的五款皮肤。看看你拥有多少款呢?1安琪拉魔法小厨娘众所周知魔法小厨娘这款皮肤是王者荣耀与必胜客的联名款,最初这款肤竟然是吃阳康之后上三层楼就气喘吁吁,心咚咚跳?黄帝内经教你这样养心头条创作挑战赛夏天是有的人很喜欢的季节,有的人很讨厌,因为夏天比较轻快,不像冬天那么繁琐,穿一身笨重的衣服,冷的没地方钻。但是也有人不喜欢夏天,因为是非常的炎热。有人热就非常的烦,同为二锅头之光,红星和牛栏山谁更正宗?行家不是一级别白酒之于中国人,有着非同凡响的意义,一个人时,它是灵魂的安抚剂,两个人时,它是感情的粘合剂,等人再多点,就成了气氛挑动最佳的万金油。因此,不管大小场合,到处都能见到酒的身影,而且不关于对高唐县城区进一步规范停车秩序的温馨提示大众网海报新闻记者贾国良实习记者王家心聊城报道近期春节将至,高唐县辖区内节日气氛日渐浓厚,群众返乡探亲商场购物亲友聚会景点游玩等出行和停车需求大幅增加。为创造整洁有序安全畅通的城市张恨水新婚妻子被掉包,36岁再娶女粉丝,靠稿费养活13个子女古人云万般皆下品,唯有读书高!民国时期他的稿费就能在北京买一座四合院,这是什么样的牛人?他就是作家张恨水先生,很多人都知道他的文学作品,却没想到他的情路一直坎坷,直到他去世之后,子WCBA官方全明星周末在深圳举行取消常规赛第三循环的赛事直播吧1月10日讯WCBA官方发布了关于20222023赛季中国女子篮球联赛后续比赛安排的通知。其中,20222023赛季WCBA联赛全明星周末活动计划于2023年2月4日至5日在出单曲做潮牌机场秀,明星真的好忙啊如果没有影视舞台作品,明星还会活跃在热搜里吗?答案是肯定的,而且上热搜的方式总是五花八门,以各种神奇的姿势突破普通人的想象。曾经因父母KTV问题陷入争议的小爱豆余景天,最近又承包了拍一部戏换一张脸,5位热衷整容的明星,还记得初始模样吗?头条创作挑战赛我们都知道,作为一名演员,最基本的要求便是形象过关,也唯有拥有这个基础条件,才有登上荧屏的机会。当然,很多人不是生来就完美的,他们为了能够更上镜,适当的做一些医美整形宋小宝与相伴7年的发妻离婚后,再婚娶小6岁女粉丝,他怎样了瞧你那损色。海燕啊,你可长点心吧。在2011年辽宁卫视的春晚上,头戴黑红小帽,皮肤黝黑的宋小宝,凭借着这两句话走红大江南北。从那之后,他成了各大综艺节目争相邀请的对象。事业火了之后
友情链接:快好找快生活快百科快传网中准网文好找聚热点快软网