【Spring源码】- 10 Spring AOP核心API-今日聚焦

概述

Spring的两大核心:IoCAOPIoC作为Spring的根基,通过大量的扩展点让系统轻而易举的就可以实现良好的扩展性,而AOPIoC结合在一起,类似于发生强大化学反应一样,将Spring的功能性又提高了一个层次。Spring中也有大量使用AOP场景,比如@Configuration、数据库事务、mybatis mapper接口注入等等。

AOP全称Aspect Oriented Programming,即面向切面编程,其并非Spring独有,作为一种对OOP编程思想的补充,其也有自己的标准规范并有独立的组织进行维护。

根据织入时机的不同,AOP又可以分为三类:


(资料图片)

编译时织入:ApectJ主要采用的就是编译时织入方式,这种一般使用特定的编译器方式实现;类加载时织入:这种一般都是依赖JVM Instruments技术实现,Spring中也有对这种技术支持,具体可以了解下LoadTimeWeaver;动态织入:动态代理方式实现AOP就是动态织入场景,Spring中实现AOP最主要方式,根据动态代理方式不同,又可以分为:JDK动态代理CGLIB动态代理

AOP标准规范是由独立的组织机构进行维护,其涉及到的核心概念主要如下:

连接点(JoinPoint):程序运行中的某个阶段点,比如方法的调用、异常的抛出、类初始化和对象实例化等。连接点是AOP的核心概念,并且定义了在应用程序中可以使用AOP插入其它逻辑的点;切点(Pointcut):切点是基于规则定义如何查找连接点,其可以看成包含一系列连接点的组合,Spring中对应的是Pointcut接口,定义了哪些类的哪些方法需要织入增强;通知(Advice):在连接点处需要织入的增强代码逻辑封装;切面(Aspect):切面是AdvicePointcut组合,对应SpringAdvisor;织入(Weaving):织入是在适当的位置将切面插入到应用程序代码中的过程,就是上面说的编译时织入、类加载时织入和动态织入;目标对象(target):AOP代理增强的原生对象;

基础API

Spring AOP很多人不能很好的理解、使用,一方面是因为AOP涉及的概念可能比较抽象,不容易理解;另外一方面你对Spring AOP涉及到的一些基础API不熟悉。下面我们就对Spring AOP中最核心的一些API,由底向上,由基础到高级方式一步步分析。

Enhancer

Spring AOP主要使用的是动态代理方式实现,动态代理实现主要包括两种:jdk动态代理cglib动态代理jdk动态代理方式比较熟悉,下面就来看下cglib动态代理如何实现。

Spring中提供了一个工具类:EnhancerSpring中主要就是利用该工具类创建cglib动态代理。下面我们通过一个案例看下其基本使用:

1、创建Callback回调接口类,该接口中就可以实现增强逻辑:

public class MyMethodInterceptor implements MethodInterceptor { @Override public Object intercept(Object obj, Method method, Object[] args, MethodProxy methodProxy)   throws Throwable {  try {   before(method);//前置通知   Object ret = methodProxy.invokeSuper(obj, args);//目标方法执行   after(method, ret);//后置通知   return ret;  } catch (Exception e) {   exception();//异常通知  } finally {   afterReturning();//方法返回通知  }  return null; } //前置增强 private void before(Method method) {  System.out.printf("before execute:%s\r\n", method.getName()); } //后置增强 private void after(Method method, Object ret) {  System.out.printf("after execute:%s, ret:%s\r\n", method.getName(), ret); } //异常增强 private void exception() {  System.out.println("execute failure"); } //after返回增强 private void afterReturning() {  System.out.println("execute finish"); }    }

2、编写测试:

//NoOp.INSTANCE:NoOp回调把对方法调用直接委派给这个方法在父类中的实现,即可理解为真实对象直接调用方法,没有任何增强private static final Callback[] CALLBACKS = new Callback[] {            new MyMethodInterceptor(),            NoOp.INSTANCE};public void test()  {    //创建Enhancer实例    Enhancer enhancer =  new Enhancer();        //cglib是基于继承方式代理,superClass就是基于哪个类型父类进行增强,创建出来的对象就是该类型子类    enhancer.setSuperclass(UserServiceImpl.class);    //CallbackFilter主要用于过滤不同Method使用不同的Callback    enhancer.setCallbackFilter(new CallbackFilter() {        @Override        public int accept(Method method) {            if (method.getDeclaringClass() == Object.class) {                return 1;//使用Callback数组下标是1的            }            return 0;//使用Callback数组下标是0的        }    });    //设置Callback数组,Callback就是封装的增强逻辑    enhancer.setCallbacks(CALLBACKS);    //创建代理对象    UserService proxyObj = (UserService) enhancer.create();    System.out.println(proxyObj.say("zhangsan"));}

通过上面enhancer.create()这条语句,就可以为目标类创建一个cglib动态代理,通过Callback回调方式将各种增强逻辑织入到代理实例中。

还可以使用Enhancer.createClass()方法只创建出代理类型,然后自己通过反射方式创建对象。这时,需要注意:1、这时就不能使用setCallbacks()设置Callback数组,而是使用setCallbackTypes()设置Callback对应的类型;2、Enhancer.createClass()执行完成后,再通过Enhancer.registerStaticCallbacks(clz, CALLBACKS)方式设置Callback数组;

enhancer.setInterfaces()可用于设置生成的代理类必须实现的接口,比如你可以不设置superclass,只设置interfaces,这时也是可以正常创建出基于这个接口的动态代理实例,但是这时就要注意不能触发目标对象方法执行,如methodProxy.invokeSuper执行会报错,如下:

public Object intercept(Object obj, Method method, Object[] args, MethodProxy methodProxy)  throws Throwable { try {  before(method);//前置通知  //Object ret = methodProxy.invokeSuper(obj, args);//目标方法执行  after(method, ret);//后置通知  return ret; } catch (Exception e) {  exception();//异常通知 } finally {  afterReturning();//方法返回通知 } return null;}

基于接口创建的代理实例还是非常有用的,比如mybatis mapper就是一个没有实现类的接口,但是在spring中却可以依赖注入到service bean中,其中就是利用到上面基于接口创建动态代理的思想,注入进来的其实就是基于接口的动态代理,然后调用接口中方法时就可以进行拦截,获取到具体调用方法签名信息以及参数信息,基于这些数据进行业务逻辑处理。

invoke和invokeSuper方法区别

Callback#intercept()回调方法中执行methodProxy.invokeSuper()methodProxy.invoke()是有很大区别的,而且看不到执行流程,所以这里涉及的逻辑非常绕。

public Object intercept(Object obj, Method method, Object[] args, MethodProxy methodProxy)  throws Throwable { Object ret = methodProxy.invokeSuper(obj, args);    Object ret = methodProxy.invoke(delete, args);}

大致区别如下图:

客户端触发代理对象say方法调用,首先进入代理对象中的同名方法,然后进入方法拦截对象MethodInterceptor,这里会出现两种情况:

如果调用invokeSuper方法,流程会重新走到代理对象中,代理对象这时会识别出是调用super中同名方法,所以没有继续向下走,而是通过super.say()方式调用目标对象中的方法。如果调用invoke方法,代理对象内部其实包裹一个目标对象target,这时它是直接通过target.say方式调用目标对象。

invokeSuper()invoke()方法都可以调用到目标对象方法,但是它们之间存在的一个本质区别:上下文环境不一样;或者更直接说:目标对象中this指向不一样。通过super.say()方式调用的目标对象,this指向的是代理对象;而通过target.say()方式调用的,目标对象中this指向的就是目标对象本身。这会导致什么差异呢?

假如目标对象类型如下定义,然后使用Enhancer创建一个代理对象:

public class Target {        public void a() {        System.out.println(" a 方法");        b();    }        public void b() {        System.out.println(" b 方法");    }}

客户端触发代理对象a()方法执行,如果拦截器中使用invoke方式调用目标对象:直接调用目标对象a()方法,这个方法中又会通过this.b()调用方法b,由于是目标对象本身内部调用,所以b()方法不会被拦截的。

客户端触发代理对象a()方法执行,如果拦截器中使用invokeSuper()方式调用目标对象:这里是通过super.a()方式调用目标对象中的a()方法,然后a()方法又会通过this.b()调用方法b,注意这时的this不是目标对象本身,而是代理对象,因为代理对象继承目标对象,代理对象会有重名方法覆写了目标对象方法。所以,this.b()实际上会触发代理对象中方法b的执行,这时是会触发拦截器的。

所以,methodProxy.invokeSuper(obj, args)这个obj是代理对象;而methodProxy.invoke(obj, args)这个入参obj是目标对象。搞清楚这些基本理解清楚应该使用invoke还是invokeSuper

ProxyFactory

Enhancer只能用于创建cglib动态代理Spring中还有一个更上层点的类ProxyFactory,可以用于创建JDK动态代理cglib动态代理

public void test02() { ProxyFactory proxyFactory = new ProxyFactory(); proxyFactory.setTarget(new UserServiceImpl());    /*    调用ProxyFactory.addInterface()或setInterfaces()表示对接口进行代理,一般会使用jdk动态代理,    除非setOptimize(true)或setProxyTargetClass(true)表示使用cglib代理    cglib代理类名称格式大致为:ServiceImpl$$EnhancerBySpringCGLIB$$f2952b94    */ //setInterfaces设置这个,会基于接口代理,使用jdk动态代理方式 proxyFactory.setInterfaces(UserService.class); //proxyFactory.setOptimize(true); //proxyTargetClass=true:直接代理目标类,而不是接口,使用cglib proxyFactory.setProxyTargetClass(true); // 添加增强 proxyFactory.addAdvice(new MyBeforeAdvice02());    //内部使用了缓存,target不变时,getProxy()获取到的都是同一个    //只有target变化时,才会重新创建新的代理对象 Object proxy = proxyFactory.getProxy();}

ProxyFactory类是AOP底层实现中非常重要的一个类,另外AnnotationAwareAspectJAutoProxyCreatorBeanNameAutoProxyCreatorDefaultAdvisorAutoProxyCreator等一些高级AOP实现工具类都是通过在其父类AbstractAutoProxyCreator中借助ProxyFactory实现AOP逻辑织入的。所以,理解ProxyFactory的使用对理解Spring AOP至关重要。

ProxyFactory类控制代理的创建过程,其内部委托给DefaultAopProxyFactory的一个实例,该实例又转而委托给Cglib2AopProxyJdkDynamicAopProxy,用于创建基于cglib代理还是jdk代理,想了解这两种动态代理区别可以分析下这个类源码。

ProxyFactoryaddAdvice()方法将传入的通知封装到DefaultPointcutAdvisor(DefaultPointcutAdvisorPointcutAdvisor的标准实现)的一个实例中,并使用默认包含所有方法的切入点对其进行配置。为更加灵活细粒度的控制在哪些连接点上拦截通知,可以使用addAdVisor()方法添加一个带有切入点消息的Advisor

可以使用相同的ProxyFactory实例来创建多个代理,每个代理都有不同的切面。为了帮助实现该过程,ProxyFactory提供了removeAdvice()removeAdvisor()方法,这些方法允许从ProxyFactory中删除之前传入的任何通知或切面,同时可以使用boolean adviceIncluded(@Nullable Advice advice)检查ProxyFactory是否附有特定的通知对象。

Advice

ProxyFactoryaddAdvice()addAdvisor()两个方法分别引入了两个重要的类:AdviceAdvisor。首先,我们来看下Advice这个接口类,其可以看成需要织入增强的代码逻辑封装。AdviceSpringAPI结构如下:

大致描述:

BeforeAdvice:前置通知,该接口没有任何方法,平时主要使用其子类MethodBeforeAdvice,因为Spring中只能在方法前后织入,对应注解@BeforeAfterAdvice:后置通知,其存在两个子类AfterReturningAdviceThrowsAdvice,分别对应@AfterReturning@AfterThrowingMethodInterceptor:可以实现环绕通知,对应注解@Around

Advisor

AOP规范中有切面概念,在Spring中大概对应就是AdvisorAdvisor有两个子接口:PointcutAdvisorIntroductionAdvisor

其实真正使用比较多的是它的子类PointcutAdvisor,该接口关键就是如下两个方法:

public interface PointcutAdvisor { Advice getAdvice(); Pointcut getPointcut();}

PointcutAdvisor从接口定义大概就可以看出,其就是对AdvicePointcut的封装,Advice代表的是横切面需要织入的代码,而Pointcut定义了如何去切的问题。从之前分析来看,Advice也可以看出一种非常简单的切面,是对指定的类所有方法都进行切入,横切面太宽泛,灵活性不够,PointAdvisor引入了Pointcut后显然比Advice更加灵活、强大。

PointcutAdvisor主要有6个具体的实现类,分别介绍如下:

DefaultPointcutAdvisor:最常用的切面类型,它可以通过任意PointcutAdvice定义一个切面,一般可以通过扩展该类实现自定义的切面;NameMatchMethodPointcutAdvisor:通过该类可以定义按方法名定义切点的切面;RegexpMethodPointcutAdvisor:使用正则表达式模式定义切点,其内部通过JdkRegexpMethodPointcut构造出正则表达式方法名切点;StaticMethodMatcherPointcutAdvisor:静态方法匹配器切点定义的切面,默认情况下,匹配所有的目标类;AspecJExpressionPointcutAdvisor:用于Aspecj切点表达式定义切点的切面;AspecJPointcutAdvisor:用于AspecJ语法定义切点的切面;

其实,这些Advisor主要区别还是基于其内部封装的Pointcut实现类体现的,在实际工作中这些类使用的可能不多,这里的核心在于Pointcut如何定义切入点,所以实际开发中更多的可能会去定制Pointcut实现类,然后使用DefaultPointcutAdvisor将其包装成Advisor使用。

下面通过RegexpMethodPointcutAdvisor案例简单了解即可:

public void test1(){    AnnotationConfigApplicationContext context =            new AnnotationConfigApplicationContext("aop.demo03");    UserServiceImpl target = new UserServiceImpl();    ProxyFactoryBean proxyFactoryBean = new ProxyFactoryBean();    proxyFactoryBean.setTarget(target);    proxyFactoryBean.setProxyTargetClass(true);    RegexpMethodPointcutAdvisor advisor = new RegexpMethodPointcutAdvisor();    //设置advisor的advice    advisor.setAdvice(new MyBeforeAdvice02());    //设置advisor的pointcut,aop.demo03包下所有类中已say开头的方法才会织入    advisor.setPattern("aop.demo03..*.say*");    proxyFactoryBean.addAdvisor(advisor);    proxyFactoryBean.setBeanFactory(context);    Object obj = proxyFactoryBean.getObject();    System.out.println(obj.getClass().getName());    UserServiceImpl userService = (UserServiceImpl) obj;    System.out.println(userService.say("haha"));}

RegexpMethodPointcutAdvisor表示通过正则表达式进行切点描述的切面,它有一个pattern属性用来指定增强要应用到哪些类的哪些方法,也可以通过patterns属性指定多个表达式进行匹配。有一个advice属性用来表示要应用的增强,这样就能表示一个完整的切面了。

Pointcut

Advisor引入了一个核心接口Pointcut,其描述了对哪些类的哪些方法进行切入。Pointcut从其定义可以看出其由ClassFilterMethodMatcher构成。ClassFilter用于定位哪些类可以进行切入,然后再通过MethodMatcher定位类上的哪些方法可以进行切入,这样Pointcut就拥有了识别哪些类的哪些方法能被进行切入的能力。

public interface Pointcut { ClassFilter getClassFilter(); MethodMatcher getMethodMatcher();}

Pointcut接口API结构见下:

其中这里比较常用的AnnotationMatchingPointcut基于注解进行切入,之前分析【Spring源码】- 09 扩展点之@Import注解一节就使用到该实现类,将标记有@MyAsync注解的方法都进行增强就是利用这个实现类:

AnnotationMatchingPointcut pointcut = AnnotationMatchingPointcut.forMethodAnnotation(MyAsync.class);Advice advice = new AsyncAnnotationAdvice(executor);DefaultPointcutAdvisor advisor = new DefaultPointcutAdvisor();advisor.setPointcut(pointcut);advisor.setAdvice(advice);ProxyFactory proxyFactory = new ProxyFactory();proxyFactory.setTarget(bean);if(!this.isProxyTargetClass()){ proxyFactory.setInterfaces(bean.getClass().getInterfaces());}proxyFactory.addAdvisor(advisor);proxyFactory.copyFrom(this);return proxyFactory.getProxy();

ProxyFactoryBean

ProxyFactoryBeanProxyFactory功能和使用其实差不多,底层逻辑也基本一致,ProxyFactoryBean主要是融合了IOC功能。一方面ProxyFactoryBean类是FactoryBean的一个实现,更加方便注入IoC中,参照mybatisspring整合一节,其中关键一步就是将扫描的BeanDefinitionbeanClass由接口类替换成FactoryBean类型;另一点就是切面可以使用IoC容器bean

下面通过一个案例简单看下ProxyFactoryBean使用:

package org.simon.ioc.demo1;import org.springframework.aop.MethodBeforeAdvice;import org.springframework.stereotype.Component;import java.lang.reflect.Method;@Componentpublic class MyBeforeAdvice implements MethodBeforeAdvice { public void before(Method arg0, Object[] arg1, Object arg2) throws Throwable {  System.out.println("-----洗手-----"); }}
@Testpublic void test1(){ AnnotationConfigApplicationContext context =    new AnnotationConfigApplicationContext("org.simon.ioc.demo1"); UserService target = new UserServiceImpl(); ProxyFactoryBean proxyFactoryBean = new ProxyFactoryBean(); proxyFactoryBean.setTarget(target); proxyFactoryBean.setInterceptorNames("myBeforeAdvice", "otherAdvice*"); proxyFactoryBean.setBeanFactory(context); Object obj = proxyFactoryBean.getObject(); System.out.println(obj.getClass().getName()); UserService userService = (UserService) obj; System.out.println(userService.say("haha"));}

其中关键一步在:proxyFactoryBean.setInterceptorNames("myBeforeAdvice", "otherAdvice*");,可以使用IoC中的beanName,同时还支持通配符*IoC中查找对应Bean

高级API

前面介绍的类、接口等都是Spring AOP中一些底层API,使用起来不太方便,感觉功能不太强大,不论是ProxyFactory还是ProxyFactoryBean创建织入切面的代理,每次只能硬编码一个具体的Bean,假如我想将某个包路径下符合一定规则的类的特定方法都进行织入代理怎么办?

使用前面那些API好像都不能实现这个需求,但是结合之前分析的Spring扩展点,很容易想到可以结合BeanPostProcessor扩展点实现这个需求,postProcessAfterInitialization()这个方法回调时Bean依赖注入、初始化等都已经完成,这时就可以在这个方法中过滤出符合一定条件的Bean进行代理增强处理。

其实,在Spring中基于这种思想,已经为我们提供了三个实现类:

BeanNameAutoProxyCreator:基于beanName进行织入增强,通过setBeanNames(String... beanNames)将需要增强的beanName设置进去;DefaultAdvisorAutoProxyCreator:基于Advisor匹配机制进行织入增强,它会对容器中所有的Advisor进行扫描,自动将这些切面应用到匹配的Bean中;AnnotationAwareAspectjAutoProxyCreator:基于BeanAspectJ注解方式进行织入增强,就是实现平时使用的@Aspect@Before@AroundAspectJ注解功能支持。

下面我们就来通过DefaultAdvisorAutoProxyCreator了解下使用场景:

1、定义一个目标类,后续就是基于该类进行增强:

@Componentpublic class UserServiceImpl{ public String say(String name){  System.out.println("执行:==UserService#say===");  return "hello,"+name; }}

2、定义一个配置类:

@Configuration@ComponentScan(basePackageClasses = AopConfig.class)public class AopConfig {    @Bean    public RegexpMethodPointcutAdvisor regexpMethodPointcutAdvisor(){        RegexpMethodPointcutAdvisor advisor = new RegexpMethodPointcutAdvisor();        advisor.setAdvice(new MyBeforeAdvice02());        //aop.demo03包下所有类中带有say开头方法进行增强        advisor.setPattern("aop.demo03..*.say*");        return advisor;    }    @Bean    public DefaultAdvisorAutoProxyCreator defaultAdvisorAutoProxyCreator(){        return new DefaultAdvisorAutoProxyCreator();    }}

这个类有两个关键,一个是向IoC中注入Advisor,之前分析过Advisor包含两个功能:

通过Pointcut定位哪些类的哪些方法需求切入;通过关联的Advice指定切入增强逻辑;

另一个关键就是注入DefaultAdvisorAutoProxyCreator,这个就是一个Spring内置的实现BeanPostProcessor扩展类,其在postProcessAfterInitialization()方法中对Bean进行切入增强。

3、测试:

public void test1(){        AnnotationConfigApplicationContext context =                new AnnotationConfigApplicationContext(AopConfig.class);        System.out.println(context.getBean(UserServiceImpl.class).getClass());}

context.getBean(UserServiceImpl.class)IoC容器中获取的就是使用cglib代理后的实例。

下面我们再来分析下AnnotationAwareAspectjAutoProxyCreator,平时如果项目中需要开启AOP功能,使用@EnableAspectJAutoProxy注解方式开启,我们来看下该注解干了什么?

1、@EnableAspectJAutoProxy注解使用@Import注解将AspectJAutoProxyRegistrar引入:

@Target(ElementType.TYPE)@Retention(RetentionPolicy.RUNTIME)@Documented@Import(AspectJAutoProxyRegistrar.class)public @interface EnableAspectJAutoProxy { boolean proxyTargetClass() default false; boolean exposeProxy() default false;}

2、AspectJAutoProxyRegistrarImportBeanDefinitionRegistrar接口实现类:

class AspectJAutoProxyRegistrar implements ImportBeanDefinitionRegistrar { @Override public void registerBeanDefinitions(   AnnotationMetadata importingClassMetadata, BeanDefinitionRegistry registry) {  //注册一个SmartInstantiationAwareBeanPostProcessor类型的实现类:AnnotationAwareAspectJAutoProxyCreator  AopConfigUtils.registerAspectJAnnotationAutoProxyCreatorIfNecessary(registry);  AnnotationAttributes enableAspectJAutoProxy =    AnnotationConfigUtils.attributesFor(importingClassMetadata, EnableAspectJAutoProxy.class);  if (enableAspectJAutoProxy != null) {   if (enableAspectJAutoProxy.getBoolean("proxyTargetClass")) {    AopConfigUtils.forceAutoProxyCreatorToUseClassProxying(registry);   }   if (enableAspectJAutoProxy.getBoolean("exposeProxy")) {    AopConfigUtils.forceAutoProxyCreatorToExposeProxy(registry);   }  } }}

其中最关键一句AopConfigUtils.registerAspectJAnnotationAutoProxyCreatorIfNecessary(registry);,就是向IoC容器中注入AnnotationAwareAspectJAutoProxyCreator

这样我们就明白了@EnableAspectJAutoProxy注解方式开启AOP的本质就像向IoC中注入AnnotationAwareAspectJAutoProxyCreator,它利用BeanPostProcessor扩展点功能实现织入增强逻辑。

总结

首先,对Spring AOP底层一些最基础、最核心的API的分析梳理,相信你会对Spring AOP底层实现逻辑有了一个更加深入的理解。然后通过Spring AOP提供的高级API,理解了如何将IoCAOP集成到一起实现强大功能,对SpringAOP的整体实现思路也有了比较清晰的认识。

标签:

上一篇 :

世界播报:蔡天凤是假名媛!豪宅是按揭买的,家里靠经营自由行餐饮业务发迹

下一篇 :

最后一页

分享到 :

推荐阅读

【Spring源码】- 10  Spring AOP核心API-今日聚焦

【Spring源码】- 10 Spring AOP核心API-今日聚焦

Spring的两大核心:IoC和AOP,IoC作为Spring的根基,通过大量的扩展点让系统轻而易举的就可以实现良好的...

2023-03-29
世界播报:蔡天凤是假名媛!豪宅是按揭买的,家里靠经营自由行餐饮业务发迹

世界播报:蔡天凤是假名媛!豪宅是按揭买的,家里靠经营自由行餐饮业务发迹

蔡天凤事件,让不少人对婚姻产生了恐惧。这么善良的人怎么就没了,想想案发现场的描述,真的让人难受又...

2023-03-29
比音勒芬03月29日继续上涨,股价创历史新高|焦点播报

比音勒芬03月29日继续上涨,股价创历史新高|焦点播报

03月29日,比音勒芬股价继续上涨。截至今日收盘,比音勒芬上涨3 76%,收盘价为32 60元,盘中股价最高...

2023-03-29
国民教育本科_关于国民教育本科的介绍

国民教育本科_关于国民教育本科的介绍

1、根据高考录取批次的不同。2、本科也分为一本、二本、三本。3、但它们同属于一个层次和等级(即本科教...

2023-03-29
重点聚焦!初恋一生北途川小说最新章节(初恋一生北途川)

重点聚焦!初恋一生北途川小说最新章节(初恋一生北途川)

1、《初恋一生》百度网盘txt最新全集下载;链接:提取码:t35t歌手出道三年,陆季行终于爆红。2、通告满天...

2023-03-29
误诊医生有责任吗

误诊医生有责任吗

误诊医生在有过错的情况下有责任,承担责任还要求该误诊导致了患者的损害。误诊的责任首先是民事赔偿,...

2023-03-29
梅西一传三射解锁国家队百球 阿根廷7比0狂扫库拉索

梅西一传三射解锁国家队百球 阿根廷7比0狂扫库拉索

梅西一传三射解锁国家队百球北京时间3月29日 阿根廷vs库拉索 的比赛中,梅西火力全开上演 梅西帽子戏...

2023-03-29
当前滚动:张颖颖新剧演绎底层打工人的辛酸 人设真实有喜感

当前滚动:张颖颖新剧演绎底层打工人的辛酸 人设真实有喜感

聂婷婷这个人设不仅展现了底层人群想要在大城市立足的辛酸历程,还展现了职场新人在面对竞争时的整活状...

2023-03-29
天大团队取得催化剂研发新进展 打破传统工艺局限 实现“一键筛选”

天大团队取得催化剂研发新进展 打破传统工艺局限 实现“一键筛选”

昨日,国际权威期刊《自然·纳米技术》刊登天津大学新能源化工团队取得开发重要化工催化材料新进展的研...

2023-03-29
“中特估” 下,央企投资的天时、地利与人和|全球即时

“中特估” 下,央企投资的天时、地利与人和|全球即时

“中特估”,无疑已经成为2023年证券市场备受关注的投资逻辑之一。而在这背景下,多只央企指数的产品,...

2023-03-29
杨光华:融创与孙宏斌,过关了? 世界快消息

杨光华:融创与孙宏斌,过关了? 世界快消息

融创,终于迎来了曙光。3月28日夜间,融创境外债务重组有了重大进展。融创90 48亿美元的境外债务重组,...

2023-03-29
从没打过这么富裕的仗 魅族20发布会请来了郎朗

从没打过这么富裕的仗 魅族20发布会请来了郎朗

终于,今天时间是28号,距离30号魅族20系列的发布会只有两天了,虽然这款手机大家也就都是在等一个最终...

2023-03-29
热文:abcd罩杯怎么区分大小_abcd罩杯如何区分大小

热文:abcd罩杯怎么区分大小_abcd罩杯如何区分大小

欢迎观看本篇文章,小勉来为大家解答以上问题。abcd罩杯怎么区分大小,abcd罩杯如何区分大小很多人还不...

2023-03-29
华瑞股份: 关于持股5%以上股东减持计划期限届满的公告|最资讯

华瑞股份: 关于持股5%以上股东减持计划期限届满的公告|最资讯

华瑞股份:关于持股5%以上股东减持计划期限届满的公告

2023-03-28
【天天速看料】重庆大足石刻有哪些

【天天速看料】重庆大足石刻有哪些

大足石刻位于中国西南部重庆市的大足等县境内,这里素有“石刻之乡”的美誉。大足石刻最初开凿于初唐永...

2023-03-28
京投发展:控股股东已累计增持766.78万股 占总股本1.04%

京投发展:控股股东已累计增持766.78万股 占总股本1.04%

观点网讯。3月28日,京投发展股份有限公司发布关于公司控股股东增持股份计划的进展公告,控股股东已累计...

2023-03-28
《龙马精神》发布海报 成龙深情回望60年电影生涯 当前热门

《龙马精神》发布海报 成龙深情回望60年电影生涯 当前热门

由杨子编剧、执导,成龙、刘浩存、郭麒麟领衔主演的电影《龙马精神》将于4月7日全国上映。日前,电影发...

2023-03-28
天天微动态丨暗黑破坏神4公测版世界BOSS攻略一览

天天微动态丨暗黑破坏神4公测版世界BOSS攻略一览

可能很多暗黑破坏神4童鞋不知道暗黑破坏神4公测版世界BOSS攻略一览,下面是第一资讯网小编介绍的《暗黑...

2023-03-28
美元、黄金齐跌!美元指数、欧元、英镑、日元及澳元等主要货币是日内走势预测

美元、黄金齐跌!美元指数、欧元、英镑、日元及澳元等主要货币是日内走势预测

3月28日,周二欧市盘中,美元指数维持日内跌势,现报102 55附近,日内下挫逾30点。本文对美元指数、欧...

2023-03-28
中国神秘事件录在线阅读_中国神秘事件录全集

中国神秘事件录在线阅读_中国神秘事件录全集

今天小编肥嘟来为大家解答以上的问题。中国神秘事件录在线阅读,中国神秘事件录全集相信很多小伙伴还不...

2023-03-28
中国血脂管理指南明确小学也要检测血脂

中国血脂管理指南明确小学也要检测血脂

根据近日发布的《中国血脂管理指南(2023)》,血脂检测应列入小学、初中和高中体检的常规项目。专家指...

2023-03-28
天天日报丨3月30日亮相/中型SUV 领克08预告图发布

天天日报丨3月30日亮相/中型SUV 领克08预告图发布

日前,领克品牌官方正式发布了旗下基于CMA2 0架构打造的中型SUV——领克08车型的细节图。据了解,该车...

2023-03-28
政务服务伴您身旁!济南高新区开展 “一体化政务服务自助终端”推介活动

政务服务伴您身旁!济南高新区开展 “一体化政务服务自助终端”推介活动

政务服务伴您身旁!济南高新区开展“一体化政务服务自助终端”推介活动

2023-03-28
国内首次!奇瑞小蚂蚁“铝行舱”极限抗压挑战之阿基米德测试成功!_世界今亮点

国内首次!奇瑞小蚂蚁“铝行舱”极限抗压挑战之阿基米德测试成功!_世界今亮点

早在公元前250年,“力学之父”阿基米德就曾说过“给我一个支点,我可以翘起整个地球”的经典名言。那不...

2023-03-28
一个龙一个天念什么_龙加天念什么

一个龙一个天念什么_龙加天念什么

1、龑拼音:yǎn部首:龙,部外笔画:5,总笔画:21;繁体部首:龙,部外笔画:4,总笔画:20五笔86&98

2023-03-28
原材料降价车企减负!奇瑞新能源多款车价格下调,最高降9000元!

原材料降价车企减负!奇瑞新能源多款车价格下调,最高降9000元!

今年1月份,碳酸锂价格相对去年11月份的已经有所下降,以“成本定价”的特斯拉迅速跟进并发起价格战,随...

2023-03-28
上投摩根中国优势证券投资基金招募说明书(更新)|全球热议

上投摩根中国优势证券投资基金招募说明书(更新)|全球热议

上投摩根中国优势证券投资基金招募说明书(更新)提示性公告上投摩根中国优势证券投资基金招募说明书(...

2023-03-28
怎么去埃索达尔_怎么去埃索达

怎么去埃索达尔_怎么去埃索达

1、联盟的话用传送门,沙城的就直接去了,如果是部落的话,或者联盟不能去沙城,那就只能坐船了,在黑海...

2023-03-28
焦点要闻:日本又一个高科技产业遭重创 JOLED公司破产:已竞争不过中韩

焦点要闻:日本又一个高科技产业遭重创 JOLED公司破产:已竞争不过中韩

日本曾经是全球首屈一指的显示面板大国,然而近年来不仅在LCD面板上节节败退,现在OLED面板领域也遭遇重...

2023-03-28
走进天山新蓝|这些带训班长不一般!

走进天山新蓝|这些带训班长不一般!

新训班长——是“新蓝”消防救援道路上的良师,是职业生涯中的益友,也是生活中朝夕相处的好兄长。面对...

2023-03-27
全球关注:建文帝失踪大发现朱棣找到关键人物,将他暗中囚禁一生引热议

全球关注:建文帝失踪大发现朱棣找到关键人物,将他暗中囚禁一生引热议

建文帝失踪大发现朱棣找到关键人物,将他暗中囚禁一生引热议,公元1418年3月,此时84岁的姚广孝行将就木...

2023-03-27
精彩:郑钦文领衔迈阿密8强之争,8场比赛有6位大满贯冠军|世界新资讯

精彩:郑钦文领衔迈阿密8强之争,8场比赛有6位大满贯冠军|世界新资讯

中央球场的比赛于美国当地时间12时开始(与北京时间相差12小时),男单2号种子西西帕斯对阵资格赛选手加...

2023-03-27
全球最资讯丨【Enlisted从军】为重大机制变革做好准备!卫星报告(VN 0.37)

全球最资讯丨【Enlisted从军】为重大机制变革做好准备!卫星报告(VN 0.37)

本文写于23年3月27日,距离战役合并为阵营等重大机制变革,预计还有23天~113天。或者像牙膏一样一点点被...

2023-03-27
全球快报:菁字的意思是什么?有关菁字的相关信息介绍|世界消息

全球快报:菁字的意思是什么?有关菁字的相关信息介绍|世界消息

1、“菁”,现代汉语规范二级字,普通话读音为jīng,最早见于秦朝小篆时代,在六书中属于形声字。2、“...

2023-03-27
大上海歌曲_大上海|每日速读

大上海歌曲_大上海|每日速读

1、一生守候王若琳作词:武雄作曲:张朵朵等待著你等待你慢慢的靠近我陪著我长长的夜到尽头别让我独自守...

2023-03-27
红色资源“亮出来”!凭祥市板旺村走出乡村振兴新路径 天天快消息

红色资源“亮出来”!凭祥市板旺村走出乡村振兴新路径 天天快消息

红色资源“亮出来”!凭祥市板旺村走出乡村振兴新路径

2023-03-27
468元起 特斯拉推官方车贴拉花服务:可张贴加速、续航数据|今头条

468元起 特斯拉推官方车贴拉花服务:可张贴加速、续航数据|今头条

3月27日,据特斯客户支持官方消息,特斯拉正式推出了2款车贴拉花,并可以享受到限时优惠活动,价格分别...

2023-03-27
图灵波浪——95号汽油或将重回“7元时代”、最终将见6元_世界消息

图灵波浪——95号汽油或将重回“7元时代”、最终将见6元_世界消息

「图灵波浪理论实盘推演」95号汽油或将重回“7元时代”、最终将见6元原油价格,95号汽油,图灵波浪交易...

2023-03-27
环球新资讯:创国内多项建造纪录!我国首座深远海浮式风电平台这样“屹立”深远海→

环球新资讯:创国内多项建造纪录!我国首座深远海浮式风电平台这样“屹立”深远海→

今天(26日)上午,“海油观澜号”在广东珠海举行启航仪式。“海油观澜号”将择机从广东珠海福陆码头出...

2023-03-27
《经济日报》三版关注云南曲靖:强链补链培育千亿元级产业

《经济日报》三版关注云南曲靖:强链补链培育千亿元级产业

不久前,在云南曲靖市沾益工业园区,曲靖德方创界新能源科技有限公司年产6000吨正极补锂剂项目正式投产...

2023-03-27
全球资讯:热水瓶内胆保温效果_热水瓶内胆保温原理是什么

全球资讯:热水瓶内胆保温效果_热水瓶内胆保温原理是什么

1、热水瓶的内胆是双层的,两层之间抽了真空,没有热传递。2、所以能保温,小尖端断了进了空气就会发生...

2023-03-27
文化链_关于文化链简介

文化链_关于文化链简介

1、如何使学习型组织管理理论适合中国企业的水土,如何将学习型组织理论与企业文化相结合,创造出本土化...

2023-03-27
海南百香果几月份成熟上市 海南百香果哪时候成熟呢

海南百香果几月份成熟上市 海南百香果哪时候成熟呢

1、海南百香果8-11月份成熟。2、海南百香果有黄、紫、紫红三种颜色,一般6月开花,8月到11月结果与成熟,果...

2023-03-26
全能的蔡明,才是真正的优秀艺术家 世界滚动

全能的蔡明,才是真正的优秀艺术家 世界滚动

在央视春晚的舞台上,有很多老艺术家被指责为钉子户。其中当属蔡明与潘长江的反对声音最强。蔡明已经连...

2023-03-26
果然降薪了!|滚动

果然降薪了!|滚动

果然降薪了!,降薪,净收入,招商证券,安信证券,母净利润

2023-03-26
国足未来10年最强中卫再犯错:朱辰杰5场国足打进2个乌龙!_世界热文

国足未来10年最强中卫再犯错:朱辰杰5场国足打进2个乌龙!_世界热文

在今天的比赛中,让人颇感意外的是,扬科维奇最信任的主力后卫朱辰杰再次贡献乌龙,这也是扬科维奇执教...

2023-03-26
【世界新视野】苏轼是哪个朝代的

【世界新视野】苏轼是哪个朝代的

1、苏轼是北宋文学家、书画家、唐宋八大家之一。(1037年1月8日-1101年8月24日),字子瞻、和仲,号铁冠...

2023-03-26
如何报考监理工程师_如何报考鉴黄师|每日快讯

如何报考监理工程师_如何报考鉴黄师|每日快讯

1、综述:可以去当地的居委会咨询报考的流程和注意事项。2、鉴黄师是一个因为“扫黄打非”的需要而设立...

2023-03-26
柘溪风景区_关于柘溪风景区简述

柘溪风景区_关于柘溪风景区简述

1、柘溪风景区位于湖南省安化县柘溪镇境内,距县城以北8公里。2、集自然景观与人文景观于一体的风景名胜...

2023-03-26
环球热文:中国电信2月5G套餐用户净增519万户,渗透率超70%

环球热文:中国电信2月5G套餐用户净增519万户,渗透率超70%

3月22日,中国电信公布了2023年2月主要运营数据。当月,中国电信移动用户数净增340万户,移动用户数累计...

2023-03-26
快消息!onair韩剧介绍

快消息!onair韩剧介绍

1、《爱情正在直播》是韩国SBS电视台于2008年3月5日在水木档播出的电视剧,由申宇哲执导,金恩淑编剧,...

2023-03-26
【世界聚看点】直奉大战

【世界聚看点】直奉大战

1、故事梗概民国初年,军阀混战,英、美帝国主义所支持的直系军阀,打败了日本帝国主义支持的奉系军阀后...

2023-03-26
今起,樊城每周都有烟花看!

今起,樊城每周都有烟花看!

今起,樊城每周都有烟花看!---众所周知樊城最近陷入了“赏花热潮”凡是花开的地方必定有不少游客市民前...

2023-03-25
看会东|铁柳镇:人居环境“展新颜” 乡村振兴“亮底色”_当前关注

看会东|铁柳镇:人居环境“展新颜” 乡村振兴“亮底色”_当前关注

看会东|铁柳镇:人居环境“展新颜”乡村振兴“亮底色”

2023-03-25
当前快报:河北唐山:六千余辆换电重卡 锚定发展新方向

当前快报:河北唐山:六千余辆换电重卡 锚定发展新方向

河北唐山:六千余辆换电重卡锚定发展新方向---记者近日来到位于河北省唐山市的曹妃甸港物联科技有限公司...

2023-03-25
当前关注:步兵骑兵什么意思

当前关注:步兵骑兵什么意思

1、释义2、简介3、区别经验步骤:1释义骑兵追求的是速度与美观,所以有些花,实际动作却看不清楚;步兵...

2023-03-25
法国队报评分:姆巴佩9分最高 格子8分 迈尼昂&于帕&琼阿梅尼7分

法国队报评分:姆巴佩9分最高 格子8分 迈尼昂&于帕&琼阿梅尼7分

欧洲杯预选赛小组赛第1轮,格列兹曼开场2分钟后打破僵局,姆巴佩两射一传,迈尼昂扑点,法国队4-0大胜荷...

2023-03-25
当前热议!推出多种动力选择,东风本田HR-V正式下线

当前热议!推出多种动力选择,东风本田HR-V正式下线

近日,我们获悉,东风本田HR-V已在东风本田一工厂总装线正式下线。据了解,新车定位为全新紧凑型SUV,作...

2023-03-25
【剑三】(唐毒)嫂子他过分美丽(十一)完

【剑三】(唐毒)嫂子他过分美丽(十一)完

这场权势更迭死了很多人,唐云潜摇身一变就要成为唐门新任门主,而曲竹衿也要准备和唐云潜的婚事。所谓...

2023-03-25
推荐几本小说最好是有关太监的

推荐几本小说最好是有关太监的

1、《极品太监猎美传奇》,作者是小强哥哥;2、《极品假太监混后宫》,作者是东风破;3、《混在后宫假太...

2023-03-25
怎么打字快又简单方便(怎么打字快)

怎么打字快又简单方便(怎么打字快)

怎么打字快又简单方便,怎么打字快这个很多人还不知道,现在让我们一起来看看吧!1、打字的姿势:打字的...

2023-03-25
全球关注:保鲜参的保质期是多久?

全球关注:保鲜参的保质期是多久?

我有买过人参这个人参他要保存之前一般都是在三年之内,只要在三年之内完成,吃完的这一个工序的话,大...

2023-03-25
股票行情快报:仁智股份(002629)3月24日主力资金净买入295.17万元 全球速读

股票行情快报:仁智股份(002629)3月24日主力资金净买入295.17万元 全球速读

截至2023年3月24日收盘,仁智股份(002629)报收于4 0元,下跌1 72%,换手率3 33%,成交量11 48万手,成交额4590 87万元。

2023-03-25
快讯:港交所推特专科技公司上市新规 冀满足更多公司集资需求

快讯:港交所推特专科技公司上市新规 冀满足更多公司集资需求

(戴小橦王梁屹)香港交易所(港交所)24日召开线上传媒发布会,宣布推出新特专科技公司(俗称18C)上市机制,...

2023-03-24
环球今亮点!中国证监会:鼓励更多保租房REITs发行,首发不动产净值不低于8亿

环球今亮点!中国证监会:鼓励更多保租房REITs发行,首发不动产净值不低于8亿

乐居财经孙肃博3月24日,中国证监会发布《关于进一步推进基础设施领域不动产投资信托基金(REITS)常态...

2023-03-24
花中之王是什么花

花中之王是什么花

1、牡丹花被拥戴为花中之王,牡丹花色泽艳丽,玉笑珠香,风流潇洒,富丽堂皇,素有“花中之王”的美誉。...

2023-03-24
天天观速讯丨上海环境:2022年净利润同比下降27.1% 拟10派1元

天天观速讯丨上海环境:2022年净利润同比下降27.1% 拟10派1元

上海环境(601200)公布年报,2022年净利润5 2亿元,同比下降27 1%,拟10派1元。本文到此结束,希望对大家

2023-03-24
当前热门:西游记妖怪及各妖怪简介_西游记里的妖怪一览表

当前热门:西游记妖怪及各妖怪简介_西游记里的妖怪一览表

1、第一关:五星。2、1 大王童(泰山老君),2。黄眉老佛(背景弥勒佛的少年),3。金翅大鹏(如来大叔),4...

2023-03-24
安庆高位推动纺织服装产业发展

安庆高位推动纺织服装产业发展

3月22日,以“宜时尚望未来”为主题的2023中国(安庆·望江)现代纺织服装产业展览会在安庆会展中心开幕...

2023-03-24
每日信息:​甲型流感有何特点?重点人群如何预防?——医学专家解答甲型流感防治热点问题

每日信息:​甲型流感有何特点?重点人群如何预防?——医学专家解答甲型流感防治热点问题

根据疾控部门流感监测,当前我国流感病毒活动水平有所增强,以甲型流感为主。甲型流感有何特点,要不要...

2023-03-24
为解决好群众住房问题贡献苏州经验智慧-环球热点

为解决好群众住房问题贡献苏州经验智慧-环球热点

为解决好群众住房问题贡献苏州经验智慧,苏州,倪虹,住建部,住房问题,老旧小区,保障性租赁住房

2023-03-24
武汉有哪些美食街

武汉有哪些美食街

1、户部巷首先就是户部巷了,户部巷这些年被炒的越来越火,地理位置也是很不错就在长江大桥边上,这里的...

2023-03-24
恒星(太阳是什么星) 当前热闻

恒星(太阳是什么星) 当前热闻

1、太阳是恒星。2、是太阳系的中心天体,也是太阳系中唯一的恒星。3、地球是行星。4、是围绕太阳运行的...

2023-03-24
西澳州贾瓜尔项目深部发现铜锌银等富矿体|全球快消息

西澳州贾瓜尔项目深部发现铜锌银等富矿体|全球快消息

多金属矿企业AerisResources在西澳州的贾瓜尔(Jaguar)项目本特利(Bentley)采场下面发现规模中等但品...

2023-03-24
导游辱骂“什么垃圾客人”?张家界通报

导游辱骂“什么垃圾客人”?张家界通报

前几天一名三亚导游因为游客未购物而在车上怒骂被曝光,当事导游被吊销导游证,并处以5万块钱罚款的顶格...

2023-03-24
带上Find X6 Pro游览色达,一颗镜头拍出风景大片,这表现可还行? 天天观速讯

带上Find X6 Pro游览色达,一颗镜头拍出风景大片,这表现可还行? 天天观速讯

这里是中国民间文化艺术之乡、格萨尔文化艺术之乡,还获得了全国人文生态旅游基地等荣誉称号。不管是标...

2023-03-24
世界快看点丨冒险岛女神的宠物竖琴_女神的宠物竖琴

世界快看点丨冒险岛女神的宠物竖琴_女神的宠物竖琴

1、在隐藏地图里有一个竖琴。2、这个竖琴从左到右的七个按键分别对应音乐中的1234567(哆来咪)。3、您...

2023-03-24
年龄少6岁,2-2爆冷!中国男足神了,3连输到3场不败,世少赛有戏_环球百事通

年龄少6岁,2-2爆冷!中国男足神了,3连输到3场不败,世少赛有戏_环球百事通

今日,中国男足国家队和U24亚运队同时在新西兰跟各个对手进行友谊赛,国足名宿杨晨执教的U17年龄段国足...

2023-03-24
焦点要闻:侯佩岑什么时候结婚

焦点要闻:侯佩岑什么时候结婚

侯佩岑是台湾知名女主播,曾担任东风卫视节目《娱乐亚洲》的主持人。2011年4月17日,侯佩岑和圈外男朋友...

2023-03-23
全球资讯:北辰实业2022年度计提资产减值准备总计10.43亿元

全球资讯:北辰实业2022年度计提资产减值准备总计10.43亿元

3月23日,北京北辰实业股份有限公司披露关于2022年度计提资产减值准备的公告。据悉,北辰实业据中国企业...

2023-03-23
风神奕炫GS马赫版3月26日上市!1.5T动力升级|环球新动态

风神奕炫GS马赫版3月26日上市!1.5T动力升级|环球新动态

东风风神官方宣布,奕炫GS马赫版将于3月26日正式上市。新车不但采用了全新的外观、内饰设计,车身尺寸也...

2023-03-23
天天快消息!队报:巴黎有意16岁中卫沃斯科维奇,曼城已为球员报价1200万欧

天天快消息!队报:巴黎有意16岁中卫沃斯科维奇,曼城已为球员报价1200万欧

队报以及记者罗马诺消息,巴黎、曼城都在关注现年16岁的克罗地亚中后卫沃斯科维奇(LukaVuskovic)。沃...

2023-03-23
重庆洪崖洞门票预约错了怎么修改?

重庆洪崖洞门票预约错了怎么修改?

重庆洪崖洞门票预约错了怎么修改?目前洪崖洞门票预约错了无法修改,只能申请取消之后重新预约哦!门票...

2023-03-23
世界观速讯丨看好比特币的声音不绝于耳!业内人士扬言:10万美元不是梦

世界观速讯丨看好比特币的声音不绝于耳!业内人士扬言:10万美元不是梦

Gemini的首席战略官MarshallBeard:比特币今年可能会突破历史新高,10万美元的价格是一个“有趣的数字”。

2023-03-23
深圳哪里有卖港货 焦点关注

深圳哪里有卖港货 焦点关注

深圳卖港货的地方一共5个,分别是:1、港货专卖店,地址在广东省深圳市罗湖区人民北路117号洪湖大厦1层。...

2023-03-23
促进双向沟通 强化内部治理

促进双向沟通 强化内部治理

2021年起,山东轻工职业学院逐步搭建校内意见反馈与服务机制——一站式服务平台“阳光小青”。学校从解...

2023-03-23
异动快报:沪电股份(002463)3月23日13点36分触及涨停板

异动快报:沪电股份(002463)3月23日13点36分触及涨停板

3月23日盘中消息,13点36分沪电股份(002463)触及涨停板。目前价格20 94,上涨9 98%。其所属行业元件...

2023-03-23
猪肉需求不振 猪价弱势行情或将延续 天天播报

猪肉需求不振 猪价弱势行情或将延续 天天播报

  经历了养殖端二次育肥积极性高涨带来的阶段性上行,近期国内生猪出栏价格再度陷入阴跌行情,市场交...

2023-03-23
四川开展重大产业化项目招引专项行动_全球消息

四川开展重大产业化项目招引专项行动_全球消息

原标题:四川开展重大产业化项目招引专项行动(主题)计划引进10个投资规模100亿元以上项目(副题)中工...

2023-03-23
三亚购房的最佳时机,艺海棠对比海南之心和风兰庭买房优势是什么?

三亚购房的最佳时机,艺海棠对比海南之心和风兰庭买房优势是什么?

三亚购房的最佳时机,艺海棠对比海南之心和风兰庭买房优势是什么?三亚市房价涨的这么快,三亚市买房子...

2023-03-23
世界动态:脉学之宗是谁

世界动态:脉学之宗是谁

1、被称为脉学之宗的人是扁鹊,他是春秋战国时期名医。用望、闻、问、切四诊法诊断疾病,成为我国中医的...

2023-03-23
描写送别的诗句大全_描写送别的诗句 全球简讯

描写送别的诗句大全_描写送别的诗句 全球简讯

1、《送杜少府之任蜀州》  (王勃)  城阙辅三秦,风烟望五津。2、  与君离别意,同是宦游人。3、 ...

2023-03-23
「金融街购物中心」这家券商董事长“失联”!什么情况?拥有近18年监管工作经验 带领投行跻身前十 未来何去何从?

「金融街购物中心」这家券商董事长“失联”!什么情况?拥有近18年监管工作经验 带领投行跻身前十 未来何去何从?

券商我国记者从多方信源得悉,民生证券党委书记、董事长兼总裁冯鹤年已于6月7日被有关部门带走,现在处...

2023-03-23
耐克微信红包封面在哪领取微信耐克红包封面领取方法

耐克微信红包封面在哪领取微信耐克红包封面领取方法

哪里可以拿到耐克微信红包封面?临近春节,很多品牌都在发放自己的微信红包封面,其中耐克的红包封面也...

2023-03-22
天天热文:这么完美的“秋冬救星”哪里找?

天天热文:这么完美的“秋冬救星”哪里找?

除了秋冬必备的羽绒服、羽绒服等保暖之物,还有一种单品堪称秋冬之选,那就是羽绒服。护踝向上。可用作...

2023-03-22
吴孟达和周星驰怎么了

吴孟达和周星驰怎么了

网传,周星驰最近几年的作品,没有在和吴孟达合作的原因是因为两个人之间不和,还一度传出吴孟达之所以...

2023-03-22
因感冒引起的发烧如何快速退烧_发烧如何快速退烧 今日热搜

因感冒引起的发烧如何快速退烧_发烧如何快速退烧 今日热搜

1、发烧如何快速退烧、发烧时,如果体温高于38 5,可以考虑口服退烧药进行治疗。2、常用的退烧药是布洛...

2023-03-22
研究单胺缺乏或导致抑郁症发生 识别那些吃出来的抑郁和焦虑(今日/头条)-天天消息

研究单胺缺乏或导致抑郁症发生 识别那些吃出来的抑郁和焦虑(今日/头条)-天天消息

一、研究单胺缺乏或导致抑郁症发生单胺缺乏是导致抑郁症发生的重要因素之一。近期,中国科学院昆明动物...

2023-03-22
美联教育等“跑路”企业上信用黑榜

美联教育等“跑路”企业上信用黑榜

深圳市消委会公开推送21家失信企业信用信息本报深圳讯(记者黄劼)美联教育(深圳)有限公司等21家企业因收...

2023-03-22
简讯:刷子李佳句有哪些

简讯:刷子李佳句有哪些

刷子李佳句有哪些

2023-03-22
x 广告
x 广告

Copyright ©  2015-2022 华东水产网版权所有  备案号:京ICP备2022016840号-41   联系邮箱:2 913 236 @qq.com