DM-V-VM


using System;
using System.Collections.Generic;
using System.Text;

namespace ModelSample
{
    /// <summary>
    /// Interface for a provider of stock quotes.
    /// </summary>
    public interface IStockQuoteProvider
    {
        /// <summary>
        /// Get a quote. This function may block on slow operations like hitting the network.
        /// </summary>
        /// <param name="symbol">The stock symbol.</param>
        /// <param name="quote">The quote.</param>
        /// <returns>Whether we were able to get a quote.</returns>
        bool TryGetQuote(string symbol, out double quote);
    }
}

using System;
using System.Collections.Generic;
using System.Text;

namespace ModelSample
{
    /// <summary>
    /// Mock IStockQuoteProvider that alwyas returns 100.
    /// </summary>
    public class MockQuoteProvider : IStockQuoteProvider
    {
        public bool TryGetQuote(string symbol, out double quote)
        {
            quote = 100.0;

            return true;
        }
    }
}

using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Text;
using System.Windows.Input;

namespace ModelSample
{
    /// <summary>
    /// View model for the portfolio view
    /// </summary>
    public class PortfolioViewModel
    {
        public PortfolioViewModel(IStockQuoteProvider quoteProvider)
        {
            _quoteProvider = quoteProvider;
            _stockModels = new ObservableCollection<StockModel>();
            _stockModels.Add(new StockModel("MSFT", _quoteProvider));

            _addCommand = new AddCommand(this);
            _removeCommand = new RemoveCommand(this);
        }

        /// <summary>
        /// The list of StockModels for the page.
        /// </summary>
        public ObservableCollection<StockModel> Stocks
        {
            get { return _stockModels; }
        }

        /// <summary>
        /// A CommandModel for Add. The command parameter should be the symbol to add.
        /// </summary>
        public CommandModel AddCommandModel
        {
            get { return _addCommand; }
        }

        /// <summary>
        /// A CommandModel for Remove. The command parameter should be the StockModel to remove.
        /// </summary>
        public CommandModel RemoveCommandModel
        {
            get { return _removeCommand; }
        }

        /// <summary>
        /// Private implementation of the Add Command
        /// </summary>
        private class AddCommand : CommandModel
        {
            public AddCommand(PortfolioViewModel viewModel)
            {
                _viewModel = viewModel;
            }

            public override void OnQueryEnabled(object sender, CanExecuteRoutedEventArgs e)
            {
                string symbol = e.Parameter as string;
                e.CanExecute = (!string.IsNullOrEmpty(symbol));
                e.Handled = true;
            }

            public override void OnExecute(object sender, ExecutedRoutedEventArgs e)
            {
                string symbol = e.Parameter as string;
                _viewModel._stockModels.Add(new StockModel(symbol, _viewModel._quoteProvider));    
            }

            private PortfolioViewModel _viewModel;
        }

        /// <summary>
        /// Private implementation of the Remove command
        /// </summary>
        private class RemoveCommand : CommandModel
        {
            public RemoveCommand(PortfolioViewModel viewModel)
            {
                _viewModel = viewModel;
            }

            public override void OnQueryEnabled(object sender, CanExecuteRoutedEventArgs e)
            {
                e.CanExecute = e.Parameter is StockModel;
                e.Handled = true;
            }

            public override void OnExecute(object sender, ExecutedRoutedEventArgs e)
            {
                _viewModel._stockModels.Remove(e.Parameter as StockModel);
            }

            private PortfolioViewModel _viewModel;
        }

        private ObservableCollection<StockModel> _stockModels;
        private CommandModel _addCommand;
        private CommandModel _removeCommand;
        private IStockQuoteProvider _quoteProvider;
    }
}

using System;
using System.ComponentModel;
using System.Diagnostics;
using System.Threading;
using System.Windows.Threading;

namespace ModelSample
{
    public class StockModel : DataModel
    {
        public StockModel(string symbol, IStockQuoteProvider quoteProvider)
        {
            _symbol = symbol;
            _quoteProvider = quoteProvider;
        }

        protected override void OnActivated()
        {
            VerifyCalledOnUIThread();

            base.OnActivated();

            _timer = new DispatcherTimer(DispatcherPriority.Background);
            _timer.Interval = TimeSpan.FromMinutes(5);
            _timer.Tick += delegate { ScheduleUpdate(); };
            _timer.Start();

            ScheduleUpdate();
        }

        protected override void OnDeactivated()
        {
            VerifyCalledOnUIThread();

            base.OnDeactivated();

            _timer.Stop();
            _timer = null;
        }

        private void ScheduleUpdate()
        {
            VerifyCalledOnUIThread();

            // Queue a work item to fetch the quote
            if (ThreadPool.QueueUserWorkItem(new WaitCallback(FetchQuoteCallback)))
            {
                this.State = ModelState.Fetching;
            }
        }

        /// <summary>
        /// Gets the stock symbol.
        /// </summary>
        public string Symbol
        {
            get { return _symbol; }
        }

        /// <summary>
        /// Gets the current quote for the stock. Only valid if State == Active.
        /// </summary>
        public double Quote
        {
            get
            {
                VerifyCalledOnUIThread();

                return _quote;
            }

            private set
            {
                VerifyCalledOnUIThread();

                if (_quote != value)
                {
                    _quote = value;
                    SendPropertyChanged("Quote");
                }
            }
        }

        /// <summary>
        /// Callback on background thread to fecth quote.
        /// </summary>
        private void FetchQuoteCallback(object state)
        {
            double fetchedQuote;
            if (_quoteProvider.TryGetQuote(_symbol, out fetchedQuote))
            {
                this.Dispatcher.BeginInvoke(DispatcherPriority.ApplicationIdle, new ThreadStart(delegate
                    {
                        this.Quote = fetchedQuote;
                        this.State = ModelState.Valid;
                    }));
            }
            else
            {
                this.Dispatcher.BeginInvoke(DispatcherPriority.ApplicationIdle, new ThreadStart(delegate
                    { this.State = ModelState.Invalid; }));
            }
        }

        private string _symbol;
        private double _quote;
        private IStockQuoteProvider _quoteProvider;
        private DispatcherTimer _timer;
    }
}

<Window x:Class="ModelSample.Window1"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="ModelSample" Height="300" Width="300"
    >
    <Grid>
      <ContentControl x:Name="_content" />
    </Grid>
</Window>



using System;
using System.Collections.Generic;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Shapes;


namespace ModelSample
{
    /// <summary>
    /// Interaction logic for Window1.xaml
    /// </summary>

    public partial class Window1 : Window
    {

        public Window1()
        {
            InitializeComponent();

            _content.Content = new PortfolioViewModel(new MockQuoteProvider());
        }

    }
}


<Application x:Class="ModelSample.App"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:local="clr-namespace:ModelSample" 
    StartupUri="Window1.xaml"
    >
  <Application.Resources>
    <!-- Data Template for individual stocks -->
    <DataTemplate DataType="{x:Type local:StockModel}">
      <StackPanel Orientation="Horizontal" local:ActivateModel.Model="{Binding}">
        <TextBlock Text="{Binding Symbol}" Width="100"/>
        <TextBlock Text="{Binding Quote}" />
      </StackPanel>
    </DataTemplate>

    <!-- Definition of Portfolio view -->
    <DataTemplate DataType="{x:Type local:PortfolioViewModel}">
      <DockPanel LastChildFill="True">
        <TextBlock DockPanel.Dock="Top" TextAlignment="Center">Portfolio View</TextBlock>
        <StackPanel DockPanel.Dock="Top" Orientation="Horizontal">
          <TextBox Name="AddSymbol" Width="100" />
          <Button Command="{Binding AddCommandModel.Command}"
                  CommandParameter="{Binding Path=Text,ElementName=AddSymbol}"
                  local:CreateCommandBinding.Command="{Binding AddCommandModel}"
                  >
            Add
            </Button>
          <Button Margin="50,0,0,0"
                  Command="{Binding RemoveCommandModel.Command}"
                  CommandParameter="{Binding Path=SelectedItem,ElementName=StockList}"
                  local:CreateCommandBinding.Command="{Binding RemoveCommandModel}"
                  >
            Remove
          </Button>
        </StackPanel>
        <ListBox Name="StockList" ItemsSource="{Binding Stocks}" />
      </DockPanel>
    </DataTemplate>
  </Application.Resources>
</Application>



using System;
using System.Collections.Generic;
using System.Text;
using System.Windows.Input;

namespace ModelSample
{
    /// <summary>
    /// Model for a command
    /// </summary>
    public abstract class CommandModel
    {
        public CommandModel()
        {
            _routedCommand = new RoutedCommand();
        }

        /// <summary>
        /// Routed command associated with the model.
        /// </summary>
        public RoutedCommand Command
        {
            get { return _routedCommand; }
        }

        /// <summary>
        /// Determines if a command is enabled. Override to provide custom behavior. Do not call the
        /// base version when overriding.
        /// </summary>
        public virtual void OnQueryEnabled(object sender, CanExecuteRoutedEventArgs e)
        {
            e.CanExecute = true;
            e.Handled = true;
        }

        /// <summary>
        /// Function to execute the command.
        /// </summary>
        public abstract void OnExecute(object sender, ExecutedRoutedEventArgs e);

        private RoutedCommand _routedCommand;
    }
}

using System;
using System.Collections.Generic;
using System.Text;
using System.Windows;
using System.Windows.Input;

namespace ModelSample
{
    /// <summary>
    /// Attached property that can be used to create a binding for a CommandModel. Set the
    /// CreateCommandBinding.Command property to a CommandModel.
    /// </summary>
    public static class CreateCommandBinding
    {
        public static readonly DependencyProperty CommandProperty
           = DependencyProperty.RegisterAttached("Command", typeof(CommandModel), typeof(CreateCommandBinding),
                new PropertyMetadata(new PropertyChangedCallback(OnCommandInvalidated)));

        public static CommandModel GetCommand(DependencyObject sender)
        {
            return (CommandModel)sender.GetValue(CommandProperty);
        }

        public static void SetCommand(DependencyObject sender, CommandModel command)
        {
            sender.SetValue(CommandProperty, command);
        }

        /// <summary>
        /// Callback when the Command property is set or changed.
        /// </summary>
        private static void OnCommandInvalidated(DependencyObject dependencyObject, DependencyPropertyChangedEventArgs e)
        {
            // Clear the exisiting bindings on the element we are attached to.
            UIElement element = (UIElement)dependencyObject;
            element.CommandBindings.Clear();

            // If we're given a command model, set up a binding
            CommandModel commandModel = e.NewValue as CommandModel;
            if (commandModel != null)
            {
                element.CommandBindings.Add(new CommandBinding(commandModel.Command, commandModel.OnExecute, commandModel.OnQueryEnabled));
            }

            // Suggest to WPF to refresh commands
            CommandManager.InvalidateRequerySuggested();
        }

    }
}

using System;
using System.ComponentModel;
using System.Diagnostics;
using System.Windows.Threading;

namespace ModelSample
{
    /// <summary>
    /// Base class for data models. All public methods must be called on the UI thread only.
    /// </summary>
    public class DataModel : INotifyPropertyChanged
    {
        public DataModel()
        {
            _dispatcher = Dispatcher.CurrentDispatcher;
            this.State = ModelState.Invalid;
        }

        /// <summary>
        /// Possible states for a DataModel.
        /// </summary>
        public enum ModelState
        {
            Invalid,    // The model is in an invalid state
            Fetching,   // The model is being fetched
            Valid       // The model has fetched its data
        }

        /// <summary>
        /// Is the model active?
        /// </summary>
        public bool IsActive
        {
            get
            {
                VerifyCalledOnUIThread();
                return _isActive;
            }

            private set
            {
                VerifyCalledOnUIThread();
                if (value != _isActive)
                {
                    _isActive = value;
                    SendPropertyChanged("IsActive");
                }
            }
        }

        /// <summary>
        /// Activate the model.
        /// </summary>
        public void Activate()
        {
            VerifyCalledOnUIThread();

            if (!_isActive)
            {
                this.IsActive = true;
                OnActivated();
            }
        }

        /// <summary>
        /// Override to provide behavior on activate.
        /// </summary>
        protected virtual void OnActivated()
        {
        }

        /// <summary>
        /// Deactivate the model.
        /// </summary>
        public void Deactivate()
        {
            VerifyCalledOnUIThread();

            if (_isActive)
            {
                this.IsActive = false;
                OnDeactivated();
            }
        }

        /// <summary>
        /// Override to provide behavior on deactivate.
        /// </summary>
        protected virtual void OnDeactivated()
        {
        }

        /// <summary>
        /// PropertyChanged event for INotifyPropertyChanged implementation.
        /// </summary>
        public event PropertyChangedEventHandler PropertyChanged
        {
            add
            {
                VerifyCalledOnUIThread();
                _propertyChangedEvent += value;
            }
            remove
            {
                VerifyCalledOnUIThread();
                _propertyChangedEvent -= value;
            }
        }

        /// <summary>
        /// Gets or sets current state of the model.
        /// </summary>
        public ModelState State
        {
            get
            {
                VerifyCalledOnUIThread();
                return _state;
            }

            set
            {
                VerifyCalledOnUIThread();
                if (value != _state)
                {
                    _state = value;
                    SendPropertyChanged("State");
                }
            }
        }

        /// <summary>
        /// The Dispatcher associated with the model.
        /// </summary>
        public Dispatcher Dispatcher
        {
            get { return _dispatcher; }
        }

        /// <summary>
        /// Utility function for use by subclasses to notify that a property has changed.
        /// </summary>
        /// <param name="propertyName">The name of the property.</param>
        protected void SendPropertyChanged(string propertyName)
        {
            VerifyCalledOnUIThread();
            if (_propertyChangedEvent != null)
            {
                _propertyChangedEvent(this, new PropertyChangedEventArgs(propertyName));
            }
        }

        /// <summary>
        /// Debugging utility to make sure functions are called on the UI thread.
        /// </summary>
        [Conditional("Debug")]
        protected void VerifyCalledOnUIThread()
        {
            Debug.Assert(Dispatcher.CurrentDispatcher == this.Dispatcher, "Call must be made on UI thread.");
        }

        private ModelState _state;
        private Dispatcher _dispatcher;
        private PropertyChangedEventHandler _propertyChangedEvent;
        private bool _isActive;
    }
}


using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Text;
using System.Windows;

namespace ModelSample
{
    /// <summary>
    /// Attached property that can be used to activate a model.
    /// </summary>
    public static class ActivateModel
    {
        public static readonly DependencyProperty ModelProperty
           = DependencyProperty.RegisterAttached("Model", typeof(DataModel), typeof(ActivateModel),
                new PropertyMetadata(new PropertyChangedCallback(OnModelInvalidated)));

        public static DataModel GetModel(DependencyObject sender)
        {
            return (DataModel)sender.GetValue(ModelProperty);
        }

        public static void SetModel(DependencyObject sender, DataModel model)
        {
            sender.SetValue(ModelProperty, model);
        }

        /// <summary>
        /// Callback when the Model property is set or changed.
        /// </summary>
        private static void OnModelInvalidated(DependencyObject dependencyObject, DependencyPropertyChangedEventArgs e)
        {
            FrameworkElement element = (FrameworkElement)dependencyObject;

            // Add handlers if necessary
            if (e.OldValue == null && e.NewValue != null)
            {
                element.Loaded += OnElementLoaded;
                element.Unloaded += OnElementUnloaded;
            }

            // Or, remove if necessary
            if (e.OldValue != null && e.NewValue == null)
            {
                element.Loaded -= OnElementLoaded;
                element.Unloaded -= OnElementUnloaded;
            }

            // If loaded, deactivate old model and activate new one
            if (element.IsLoaded)
            {
                if (e.OldValue != null)
                {
                    ((DataModel)e.OldValue).Deactivate();
                }

                if (e.NewValue != null)
                {
                    ((DataModel)e.NewValue).Activate();
                }
            }
        }
 
        /// <summary>
        /// Activate the model when the element is loaded.
        /// </summary>
        static void OnElementLoaded(object sender, RoutedEventArgs e)
        {
            FrameworkElement element = (FrameworkElement)sender;
            DataModel model = GetModel(element);
            model.Activate();
        }

        /// <summary>
        /// Deactivate the model when the element is unloaded.
        /// </summary>
        static void OnElementUnloaded(object sender, RoutedEventArgs e)
        {
            FrameworkElement element = (FrameworkElement)sender;
            DataModel model = GetModel(element);
            model.Deactivate();
        }

    }
}






springboot项目配置多数据源时,启动项目出现以下异常,请分析原因,并给出解决办法:D:\sofeware\jdk\jdk1.8\bin\java.exe -agentlib:jdwp=transport=dt_socket,address=127.0.0.1:1522,suspend=y,server=n -XX:TieredStopAtLevel=1 -noverify -Dspring.output.ansi.enabled=always -Dcom.sun.management.jmxremote -Dspring.jmx.enabled=true -Dspring.liveBeansView.mbeanDomain -Dspring.application.admin.enabled=true -javaagent:C:\Users\Wyh\AppData\Local\JetBrains\IntelliJIdea2022.1\captureAgent\debugger-agent.jar -Dfile.encoding=UTF-8 -classpath "D:\sofeware\jdk\jdk1.8\jre\lib\charsets.jar;D:\sofeware\jdk\jdk1.8\jre\lib\deploy.jar;D:\sofeware\jdk\jdk1.8\jre\lib\ext\access-bridge-64.jar;D:\sofeware\jdk\jdk1.8\jre\lib\ext\cldrdata.jar;D:\sofeware\jdk\jdk1.8\jre\lib\ext\dnsns.jar;D:\sofeware\jdk\jdk1.8\jre\lib\ext\jaccess.jar;D:\sofeware\jdk\jdk1.8\jre\lib\ext\jfxrt.jar;D:\sofeware\jdk\jdk1.8\jre\lib\ext\localedata.jar;D:\sofeware\jdk\jdk1.8\jre\lib\ext\nashorn.jar;D:\sofeware\jdk\jdk1.8\jre\lib\ext\sunec.jar;D:\sofeware\jdk\jdk1.8\jre\lib\ext\sunjce_provider.jar;D:\sofeware\jdk\jdk1.8\jre\lib\ext\sunmscapi.jar;D:\sofeware\jdk\jdk1.8\jre\lib\ext\sunpkcs11.jar;D:\sofeware\jdk\jdk1.8\jre\lib\ext\zipfs.jar;D:\sofeware\jdk\jdk1.8\jre\lib\javaws.jar;D:\sofeware\jdk\jdk1.8\jre\lib\jce.jar;D:\sofeware\jdk\jdk1.8\jre\lib\jfr.jar;D:\sofeware\jdk\jdk1.8\jre\lib\jfxswt.jar;D:\sofeware\jdk\jdk1.8\jre\lib\jsse.jar;D:\sofeware\jdk\jdk1.8\jre\lib\management-agent.jar;D:\sofeware\jdk\jdk1.8\jre\lib\plugin.jar;D:\sofeware\jdk\jdk1.8\jre\lib\resources.jar;D:\sofeware\jdk\jdk1.8\jre\lib\rt.jar;D:\workspace\gssf-sjh-project\wisesys\taiji-system\target\classes;D:\sofeware\maven\dm-repository\org\springframework\cloud\spring-cloud-starter-bootstrap\3.1.1\spring-cloud-starter-bootstrap-3.1.1.jar;D:\sofeware\maven\dm-repository\org\springframework\cloud\spring-cloud-starter\3.1.1\spring-cloud-starter-3.1.1.jar;D:\sofeware\maven\dm-repository\org\springframework\security\spring-security-rsa\1.0.10.RELEASE\spring-security-rsa-1.0.10.RELEASE.jar;D:\sofeware\maven\dm-repository\org\bouncycastle\bcpkix-jdk15on\1.68\bcpkix-jdk15on-1.68.jar;D:\sofeware\maven\dm-repository\org\bouncycastle\bcprov-jdk15on\1.68\bcprov-jdk15on-1.68.jar;D:\sofeware\maven\dm-repository\org\springframework\cloud\spring-cloud-starter-loadbalancer\3.1.1\spring-cloud-starter-loadbalancer-3.1.1.jar;D:\sofeware\maven\dm-repository\org\springframework\cloud\spring-cloud-loadbalancer\3.1.1\spring-cloud-loadbalancer-3.1.1.jar;D:\sofeware\maven\dm-repository\io\projectreactor\reactor-core\3.4.14\reactor-core-3.4.14.jar;D:\sofeware\maven\dm-repository\org\reactivestreams\reactive-streams\1.0.3\reactive-streams-1.0.3.jar;D:\sofeware\maven\dm-repository\io\projectreactor\addons\reactor-extra\3.4.6\reactor-extra-3.4.6.jar;D:\sofeware\maven\dm-repository\org\springframework\boot\spring-boot-starter-cache\2.6.3\spring-boot-starter-cache-2.6.3.jar;D:\sofeware\maven\dm-repository\org\springframework\spring-context-support\5.3.15\spring-context-support-5.3.15.jar;D:\sofeware\maven\dm-repository\com\stoyanr\evictor\1.0.0\evictor-1.0.0.jar;D:\sofeware\maven\dm-repository\com\alibaba\cloud\spring-cloud-starter-alibaba-nacos-discovery\2021.0.1.0\spring-cloud-starter-alibaba-nacos-discovery-2021.0.1.0.jar;D:\sofeware\maven\dm-repository\com\alibaba\cloud\spring-cloud-alibaba-commons\2021.0.1.0\spring-cloud-alibaba-commons-2021.0.1.0.jar;D:\sofeware\maven\dm-repository\com\alibaba\nacos\nacos-client\1.4.2\nacos-client-1.4.2.jar;D:\sofeware\maven\dm-repository\com\alibaba\nacos\nacos-common\1.4.2\nacos-common-1.4.2.jar;D:\sofeware\maven\dm-repository\org\apache\httpcomponents\httpasyncclient\4.1.5\httpasyncclient-4.1.5.jar;D:\sofeware\maven\dm-repository\org\apache\httpcomponents\httpcore\4.4.15\httpcore-4.4.15.jar;D:\sofeware\maven\dm-repository\org\apache\httpcomponents\httpcore-nio\4.4.15\httpcore-nio-4.4.15.jar;D:\sofeware\maven\dm-repository\org\apache\httpcomponents\httpclient\4.5.13\httpclient-4.5.13.jar;D:\sofeware\maven\dm-repository\com\alibaba\nacos\nacos-api\1.4.2\nacos-api-1.4.2.jar;D:\sofeware\maven\dm-repository\io\prometheus\simpleclient\0.12.0\simpleclient-0.12.0.jar;D:\sofeware\maven\dm-repository\io\prometheus\simpleclient_tracer_otel\0.12.0\simpleclient_tracer_otel-0.12.0.jar;D:\sofeware\maven\dm-repository\io\prometheus\simpleclient_tracer_common\0.12.0\simpleclient_tracer_common-0.12.0.jar;D:\sofeware\maven\dm-repository\io\prometheus\simpleclient_tracer_otel_agent\0.12.0\simpleclient_tracer_otel_agent-0.12.0.jar;D:\sofeware\maven\dm-repository\org\yaml\snakeyaml\1.29\snakeyaml-1.29.jar;D:\sofeware\maven\dm-repository\com\alibaba\spring\spring-context-support\1.0.11\spring-context-support-1.0.11.jar;D:\sofeware\maven\dm-repository\org\springframework\cloud\spring-cloud-commons\3.1.1\spring-cloud-commons-3.1.1.jar;D:\sofeware\maven\dm-repository\org\springframework\security\spring-security-crypto\5.6.1\spring-security-crypto-5.6.1.jar;D:\sofeware\maven\dm-repository\org\springframework\cloud\spring-cloud-context\3.1.1\spring-cloud-context-3.1.1.jar;D:\sofeware\maven\dm-repository\com\alibaba\cloud\spring-cloud-starter-alibaba-nacos-config\2021.0.1.0\spring-cloud-starter-alibaba-nacos-config-2021.0.1.0.jar;D:\sofeware\maven\dm-repository\org\springframework\boot\spring-boot-starter-web\2.6.3\spring-boot-starter-web-2.6.3.jar;D:\sofeware\maven\dm-repository\org\springframework\boot\spring-boot-starter\2.6.3\spring-boot-starter-2.6.3.jar;D:\sofeware\maven\dm-repository\org\springframework\boot\spring-boot\2.6.3\spring-boot-2.6.3.jar;D:\sofeware\maven\dm-repository\org\springframework\boot\spring-boot-starter-logging\2.6.3\spring-boot-starter-logging-2.6.3.jar;D:\sofeware\maven\dm-repository\ch\qos\logback\logback-classic\1.2.9\logback-classic-1.2.9.jar;D:\sofeware\maven\dm-repository\ch\qos\logback\logback-core\1.2.10\logback-core-1.2.10.jar;D:\sofeware\maven\dm-repository\org\slf4j\jul-to-slf4j\1.7.33\jul-to-slf4j-1.7.33.jar;D:\sofeware\maven\dm-repository\jakarta\annotation\jakarta.annotation-api\1.3.5\jakarta.annotation-api-1.3.5.jar;D:\sofeware\maven\dm-repository\org\springframework\spring-core\5.3.15\spring-core-5.3.15.jar;D:\sofeware\maven\dm-repository\org\springframework\spring-jcl\5.3.15\spring-jcl-5.3.15.jar;D:\sofeware\maven\dm-repository\org\springframework\boot\spring-boot-starter-json\2.6.3\spring-boot-starter-json-2.6.3.jar;D:\sofeware\maven\dm-repository\com\fasterxml\jackson\datatype\jackson-datatype-jdk8\2.13.1\jackson-datatype-jdk8-2.13.1.jar;D:\sofeware\maven\dm-repository\com\fasterxml\jackson\datatype\jackson-datatype-jsr310\2.13.1\jackson-datatype-jsr310-2.13.1.jar;D:\sofeware\maven\dm-repository\com\fasterxml\jackson\module\jackson-module-parameter-names\2.13.1\jackson-module-parameter-names-2.13.1.jar;D:\sofeware\maven\dm-repository\org\springframework\boot\spring-boot-starter-tomcat\2.6.3\spring-boot-starter-tomcat-2.6.3.jar;D:\sofeware\maven\dm-repository\org\apache\tomcat\embed\tomcat-embed-core\9.0.56\tomcat-embed-core-9.0.56.jar;D:\sofeware\maven\dm-repository\org\apache\tomcat\embed\tomcat-embed-el\9.0.56\tomcat-embed-el-9.0.56.jar;D:\sofeware\maven\dm-repository\org\apache\tomcat\embed\tomcat-embed-websocket\9.0.56\tomcat-embed-websocket-9.0.56.jar;D:\sofeware\maven\dm-repository\org\springframework\spring-web\5.3.15\spring-web-5.3.15.jar;D:\sofeware\maven\dm-repository\org\springframework\spring-beans\5.3.15\spring-beans-5.3.15.jar;D:\sofeware\maven\dm-repository\org\springframework\spring-webmvc\5.3.15\spring-webmvc-5.3.15.jar;D:\sofeware\maven\dm-repository\org\springframework\spring-aop\5.3.15\spring-aop-5.3.15.jar;D:\sofeware\maven\dm-repository\org\springframework\spring-context\5.3.15\spring-context-5.3.15.jar;D:\sofeware\maven\dm-repository\org\springframework\spring-expression\5.3.15\spring-expression-5.3.15.jar;D:\sofeware\maven\dm-repository\mysql\mysql-connector-java\8.0.27\mysql-connector-java-8.0.27.jar;D:\sofeware\maven\dm-repository\com\google\protobuf\protobuf-java\3.11.4\protobuf-java-3.11.4.jar;D:\workspace\gssf-sjh-project\wisesys\taiji-common\taiji-common-datascope\target\classes;D:\workspace\gssf-sjh-project\wisesys\taiji-common\taiji-common-security\target\classes;D:\workspace\gssf-sjh-project\wisesys\taiji-common\taiji-common-log\target\classes;D:\workspace\gssf-sjh-project\wisesys\taiji-common\taiji-common-redis\target\classes;D:\sofeware\maven\dm-repository\org\springframework\boot\spring-boot-starter-data-redis\2.6.3\spring-boot-starter-data-redis-2.6.3.jar;D:\sofeware\maven\dm-repository\org\springframework\data\spring-data-redis\2.6.1\spring-data-redis-2.6.1.jar;D:\sofeware\maven\dm-repository\org\springframework\data\spring-data-keyvalue\2.6.1\spring-data-keyvalue-2.6.1.jar;D:\sofeware\maven\dm-repository\org\springframework\data\spring-data-commons\2.6.1\spring-data-commons-2.6.1.jar;D:\sofeware\maven\dm-repository\org\springframework\spring-tx\5.3.15\spring-tx-5.3.15.jar;D:\sofeware\maven\dm-repository\org\springframework\spring-oxm\5.3.15\spring-oxm-5.3.15.jar;D:\sofeware\maven\dm-repository\io\lettuce\lettuce-core\6.1.6.RELEASE\lettuce-core-6.1.6.RELEASE.jar;D:\sofeware\maven\dm-repository\io\netty\netty-common\4.1.73.Final\netty-common-4.1.73.Final.jar;D:\sofeware\maven\dm-repository\io\netty\netty-handler\4.1.73.Final\netty-handler-4.1.73.Final.jar;D:\sofeware\maven\dm-repository\io\netty\netty-resolver\4.1.73.Final\netty-resolver-4.1.73.Final.jar;D:\sofeware\maven\dm-repository\io\netty\netty-buffer\4.1.73.Final\netty-buffer-4.1.73.Final.jar;D:\sofeware\maven\dm-repository\io\netty\netty-codec\4.1.73.Final\netty-codec-4.1.73.Final.jar;D:\sofeware\maven\dm-repository\io\netty\netty-tcnative-classes\2.0.46.Final\netty-tcnative-classes-2.0.46.Final.jar;D:\sofeware\maven\dm-repository\io\netty\netty-transport\4.1.73.Final\netty-transport-4.1.73.Final.jar;D:\workspace\gssf-sjh-project\wisesys\taiji-common\taiji-common-core\target\classes;D:\sofeware\maven\dm-repository\org\springframework\cloud\spring-cloud-starter-openfeign\3.1.1\spring-cloud-starter-openfeign-3.1.1.jar;D:\sofeware\maven\dm-repository\org\springframework\cloud\spring-cloud-openfeign-core\3.1.1\spring-cloud-openfeign-core-3.1.1.jar;D:\sofeware\maven\dm-repository\org\springframework\boot\spring-boot-starter-aop\2.6.3\spring-boot-starter-aop-2.6.3.jar;D:\sofeware\maven\dm-repository\org\aspectj\aspectjweaver\1.9.7\aspectjweaver-1.9.7.jar;D:\sofeware\maven\dm-repository\io\github\openfeign\form\feign-form-spring\3.8.0\feign-form-spring-3.8.0.jar;D:\sofeware\maven\dm-repository\io\github\openfeign\form\feign-form\3.8.0\feign-form-3.8.0.jar;D:\sofeware\maven\dm-repository\io\github\openfeign\feign-core\11.8\feign-core-11.8.jar;D:\sofeware\maven\dm-repository\io\github\openfeign\feign-slf4j\11.8\feign-slf4j-11.8.jar;D:\sofeware\maven\dm-repository\org\apache\commons\commons-pool2\2.11.1\commons-pool2-2.11.1.jar;D:\sofeware\maven\dm-repository\com\github\pagehelper\pagehelper-spring-boot-starter\1.4.1\pagehelper-spring-boot-starter-1.4.1.jar;D:\sofeware\maven\dm-repository\org\mybatis\spring\boot\mybatis-spring-boot-starter\2.2.2\mybatis-spring-boot-starter-2.2.2.jar;D:\sofeware\maven\dm-repository\org\mybatis\spring\boot\mybatis-spring-boot-autoconfigure\2.2.2\mybatis-spring-boot-autoconfigure-2.2.2.jar;D:\sofeware\maven\dm-repository\org\mybatis\mybatis\3.5.9\mybatis-3.5.9.jar;D:\sofeware\maven\dm-repository\com\github\pagehelper\pagehelper-spring-boot-autoconfigure\1.4.1\pagehelper-spring-boot-autoconfigure-1.4.1.jar;D:\sofeware\maven\dm-repository\com\github\pagehelper\pagehelper\5.3.0\pagehelper-5.3.0.jar;D:\sofeware\maven\dm-repository\com\github\jsqlparser\jsqlparser\4.2\jsqlparser-4.2.jar;D:\sofeware\maven\dm-repository\org\springframework\boot\spring-boot-starter-validation\2.6.3\spring-boot-starter-validation-2.6.3.jar;D:\sofeware\maven\dm-repository\org\hibernate\validator\hibernate-validator\6.2.0.Final\hibernate-validator-6.2.0.Final.jar;D:\sofeware\maven\dm-repository\jakarta\validation\jakarta.validation-api\2.0.2\jakarta.validation-api-2.0.2.jar;D:\sofeware\maven\dm-repository\org\jboss\logging\jboss-logging\3.4.3.Final\jboss-logging-3.4.3.Final.jar;D:\sofeware\maven\dm-repository\org\apache\commons\commons-lang3\3.12.0\commons-lang3-3.12.0.jar;D:\sofeware\maven\dm-repository\commons-io\commons-io\2.5\commons-io-2.5.jar;D:\sofeware\maven\dm-repository\commons-fileupload\commons-fileupload\1.3.3\commons-fileupload-1.3.3.jar;D:\sofeware\maven\dm-repository\commons-beanutils\commons-beanutils\1.9.3\commons-beanutils-1.9.3.jar;D:\sofeware\maven\dm-repository\commons-collections\commons-collections\3.2.2\commons-collections-3.2.2.jar;D:\sofeware\maven\dm-repository\cn\hutool\hutool-all\5.2.3\hutool-all-5.2.3.jar;D:\sofeware\maven\dm-repository\org\projectlombok\lombok\1.18.22\lombok-1.18.22.jar;D:\sofeware\maven\dm-repository\com\alibaba\fastjson\1.2.83\fastjson-1.2.83.jar;D:\sofeware\maven\dm-repository\dom4j\dom4j\1.6.1\dom4j-1.6.1.jar;D:\sofeware\maven\dm-repository\xml-apis\xml-apis\1.0.b2\xml-apis-1.0.b2.jar;D:\sofeware\maven\dm-repository\org\postgresql\postgresql\42.2.25\postgresql-42.2.25.jar;D:\sofeware\maven\dm-repository\org\checkerframework\checker-qual\3.5.0\checker-qual-3.5.0.jar;D:\sofeware\maven\dm-repository\com\newtec\license\2.3.0\license-2.3.0.jar;D:\sofeware\maven\dm-repository\com\dm\DmJdbcDriver\1.8.0\DmJdbcDriver-1.8.0.jar;D:\sofeware\maven\dm-repository\io\minio\minio\8.0.3\minio-8.0.3.jar;D:\sofeware\maven\dm-repository\com\carrotsearch\thirdparty\simple-xml-safe\2.7.1\simple-xml-safe-2.7.1.jar;D:\sofeware\maven\dm-repository\com\google\guava\guava\29.0-jre\guava-29.0-jre.jar;D:\sofeware\maven\dm-repository\com\google\guava\failureaccess\1.0.1\failureaccess-1.0.1.jar;D:\sofeware\maven\dm-repository\com\google\guava\listenablefuture\9999.0-empty-to-avoid-conflict-with-guava\listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar;D:\sofeware\maven\dm-repository\com\google\code\findbugs\jsr305\3.0.2\jsr305-3.0.2.jar;D:\sofeware\maven\dm-repository\com\google\errorprone\error_prone_annotations\2.3.4\error_prone_annotations-2.3.4.jar;D:\sofeware\maven\dm-repository\com\google\j2objc\j2objc-annotations\1.3\j2objc-annotations-1.3.jar;D:\sofeware\maven\dm-repository\com\fasterxml\jackson\core\jackson-annotations\2.13.1\jackson-annotations-2.13.1.jar;D:\sofeware\maven\dm-repository\com\fasterxml\jackson\core\jackson-core\2.13.1\jackson-core-2.13.1.jar;D:\sofeware\maven\dm-repository\com\fasterxml\jackson\core\jackson-databind\2.13.1\jackson-databind-2.13.1.jar;D:\sofeware\maven\dm-repository\com\huaweicloud\esdk-obs-java\3.21.11\esdk-obs-java-3.21.11.jar;D:\sofeware\maven\dm-repository\com\jamesmurty\utils\java-xmlbuilder\1.3\java-xmlbuilder-1.3.jar;D:\sofeware\maven\dm-repository\org\apache\logging\log4j\log4j-core\2.17.1\log4j-core-2.17.1.jar;D:\sofeware\maven\dm-repository\org\apache\logging\log4j\log4j-api\2.17.1\log4j-api-2.17.1.jar;D:\sofeware\maven\dm-repository\commons-net\commons-net\3.8.0\commons-net-3.8.0.jar;D:\sofeware\maven\dm-repository\com\squareup\okhttp3\okhttp\4.9.1\okhttp-4.9.1.jar;D:\sofeware\maven\dm-repository\org\jetbrains\kotlin\kotlin-stdlib\1.6.10\kotlin-stdlib-1.6.10.jar;D:\sofeware\maven\dm-repository\org\jetbrains\annotations\13.0\annotations-13.0.jar;D:\sofeware\maven\dm-repository\com\squareup\okio\okio\2.7.0\okio-2.7.0.jar;D:\sofeware\maven\dm-repository\org\jetbrains\kotlin\kotlin-stdlib-common\1.6.10\kotlin-stdlib-common-1.6.10.jar;D:\sofeware\maven\dm-repository\io\springfox\springfox-swagger2\2.9.2\springfox-swagger2-2.9.2.jar;D:\sofeware\maven\dm-repository\io\swagger\swagger-annotations\1.5.20\swagger-annotations-1.5.20.jar;D:\sofeware\maven\dm-repository\io\swagger\swagger-models\1.5.20\swagger-models-1.5.20.jar;D:\sofeware\maven\dm-repository\io\springfox\springfox-spi\2.9.2\springfox-spi-2.9.2.jar;D:\sofeware\maven\dm-repository\io\springfox\springfox-core\2.9.2\springfox-core-2.9.2.jar;D:\sofeware\maven\dm-repository\net\bytebuddy\byte-buddy\1.11.22\byte-buddy-1.11.22.jar;D:\sofeware\maven\dm-repository\io\springfox\springfox-schema\2.9.2\springfox-schema-2.9.2.jar;D:\sofeware\maven\dm-repository\io\springfox\springfox-swagger-common\2.9.2\springfox-swagger-common-2.9.2.jar;D:\sofeware\maven\dm-repository\io\springfox\springfox-spring-web\2.9.2\springfox-spring-web-2.9.2.jar;D:\sofeware\maven\dm-repository\com\fasterxml\classmate\1.5.1\classmate-1.5.1.jar;D:\sofeware\maven\dm-repository\org\slf4j\slf4j-api\1.7.33\slf4j-api-1.7.33.jar;D:\sofeware\maven\dm-repository\org\springframework\plugin\spring-plugin-core\1.2.0.RELEASE\spring-plugin-core-1.2.0.RELEASE.jar;D:\sofeware\maven\dm-repository\org\springframework\plugin\spring-plugin-metadata\1.2.0.RELEASE\spring-plugin-metadata-1.2.0.RELEASE.jar;D:\sofeware\maven\dm-repository\org\mapstruct\mapstruct\1.2.0.Final\mapstruct-1.2.0.Final.jar;D:\sofeware\maven\dm-repository\io\springfox\springfox-swagger-ui\2.9.2\springfox-swagger-ui-2.9.2.jar;D:\sofeware\maven\dm-repository\com\kingbase8\Driver\kingbase8\8.6.0\kingbase8-8.6.0.jar;D:\sofeware\maven\dm-repository\com\dameng\DmJdbcDriver18\8.1.1.193\DmJdbcDriver18-8.1.1.193.jar;D:\sofeware\maven\dm-repository\commons-httpclient\commons-httpclient\3.1\commons-httpclient-3.1.jar;D:\sofeware\maven\dm-repository\commons-logging\commons-logging\1.0.4\commons-logging-1.0.4.jar;D:\sofeware\maven\dm-repository\commons-codec\commons-codec\1.15\commons-codec-1.15.jar;D:\workspace\gssf-sjh-project\wisesys\taiji-system\src\main\lib\gaussdbjdbc.jar;D:\sofeware\maven\dm-repository\com\baomidou\mybatis-plus-boot-starter\3.4.1\mybatis-plus-boot-starter-3.4.1.jar;D:\sofeware\maven\dm-repository\com\baomidou\mybatis-plus\3.4.1\mybatis-plus-3.4.1.jar;D:\sofeware\maven\dm-repository\com\baomidou\mybatis-plus-extension\3.4.1\mybatis-plus-extension-3.4.1.jar;D:\sofeware\maven\dm-repository\com\baomidou\mybatis-plus-core\3.4.1\mybatis-plus-core-3.4.1.jar;D:\sofeware\maven\dm-repository\com\baomidou\mybatis-plus-annotation\3.4.1\mybatis-plus-annotation-3.4.1.jar;D:\sofeware\maven\dm-repository\org\mybatis\mybatis-spring\2.0.5\mybatis-spring-2.0.5.jar;D:\sofeware\maven\dm-repository\org\springframework\boot\spring-boot-autoconfigure\2.6.3\spring-boot-autoconfigure-2.6.3.jar;D:\sofeware\maven\dm-repository\org\springframework\boot\spring-boot-starter-jdbc\2.6.3\spring-boot-starter-jdbc-2.6.3.jar;D:\sofeware\maven\dm-repository\com\zaxxer\HikariCP\4.0.3\HikariCP-4.0.3.jar;D:\sofeware\maven\dm-repository\org\springframework\spring-jdbc\5.3.15\spring-jdbc-5.3.15.jar;D:\sofeware\maven\dm-repository\com\google\code\gson\gson\2.6.2\gson-2.6.2.jar;D:\sofeware\maven\dm-repository\com\alibaba\easyexcel\2.2.7\easyexcel-2.2.7.jar;D:\sofeware\maven\dm-repository\org\apache\poi\poi\3.17\poi-3.17.jar;D:\sofeware\maven\dm-repository\org\apache\commons\commons-collections4\4.4\commons-collections4-4.4.jar;D:\sofeware\maven\dm-repository\org\apache\poi\poi-ooxml\4.1.2\poi-ooxml-4.1.2.jar;D:\sofeware\maven\dm-repository\org\apache\commons\commons-compress\1.19\commons-compress-1.19.jar;D:\sofeware\maven\dm-repository\com\github\virtuald\curvesapi\1.06\curvesapi-1.06.jar;D:\sofeware\maven\dm-repository\org\apache\poi\poi-ooxml-schemas\3.17\poi-ooxml-schemas-3.17.jar;D:\sofeware\maven\dm-repository\org\apache\xmlbeans\xmlbeans\2.6.0\xmlbeans-2.6.0.jar;D:\sofeware\maven\dm-repository\stax\stax-api\1.0.1\stax-api-1.0.1.jar;D:\sofeware\maven\dm-repository\cglib\cglib\3.1\cglib-3.1.jar;D:\sofeware\maven\dm-repository\org\ow2\asm\asm\4.2\asm-4.2.jar;D:\sofeware\maven\dm-repository\org\ehcache\ehcache\3.9.9\ehcache-3.9.9.jar;D:\sofeware\maven\dm-repository\com\alibaba\fastjson2\fastjson2\2.0.52\fastjson2-2.0.52.jar;D:\IDEA2022\IntelliJ IDEA 2022.1.4\lib\idea_rt.jar" com.taiji.TaiJiSystemApplication Connected to the target VM, address: '127.0.0.1:1522', transport: 'socket' . ____ _ __ _ _ /\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \ ( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \ \\/ ___)| |_)| | | | | || (_| | ) ) ) ) ' |____| .__|_| |_|_| |_\__, | / / / / =========|_|==============|___/=/_/_/_/ :: Spring Boot :: (v2.6.3) 09:18:40.270 [main] INFO o.a.c.h.Http11NioProtocol - [log,173] - Initializing ProtocolHandler ["http-nio-9201"] 09:18:40.273 [main] INFO o.a.c.c.StandardService - [log,173] - Starting service [Tomcat] 09:18:40.273 [main] INFO o.a.c.c.StandardEngine - [log,173] - Starting Servlet engine: [Apache Tomcat/9.0.56] 09:18:40.350 [main] INFO o.a.c.c.C.[.[.[/] - [log,173] - Initializing Spring embedded WebApplicationContext 09:18:40.835 [main] INFO o.a.c.c.StandardService - [log,173] - Stopping service [Tomcat] 09:18:40.868 [main] ERROR org.springframework.boot.diagnostics.LoggingFailureAnalysisReporter - *************************** APPLICATION FAILED TO START *************************** Description: Failed to configure a DataSource: 'url' attribute is not specified and no embedded datasource could be configured. Reason: Failed to determine a suitable driver class Action: Consider the following: If you want an embedded database (H2, HSQL or Derby), please put it on the classpath. If you have database settings to be loaded from a particular profile you may need to activate it (the profiles dev are currently active). Disconnected from the target VM, address: '127.0.0.1:1522', transport: 'socket' Process finished with exit code 1
08-20
关于 阿里云盘CLI。仿 Linux shell 文件处理命令的阿里云盘命令行客户端,支持JavaScript插件,支持同步备份功能,支持相册批量下载。 特色 多平台支持, 支持 Windows, macOS, linux(x86/x64/arm), android, iOS 等 阿里云盘多用户支持 支持备份盘,资源库无缝切换 下载网盘内文件, 支持多个文件或目录下载, 支持断点续传和单文件并行下载。支持软链接(符号链接)文件。 上传本地文件, 支持多个文件或目录上传,支持排除指定文件夹/文件(正则表达式)功能。支持软链接(符号链接)文件。 同步备份功能支持备份本地文件到云盘,备份云盘文件到本地,双向同步备份保持本地文件和网盘文件同步。常用于嵌入式或者NAS等设备,支持docker镜像部署。 命令和文件路径输入支持Tab键自动补全,路径支持通配符匹配模式 支持JavaScript插件,你可以按照自己的需要定制上传/下载中关键步骤的行为,最大程度满足自己的个性化需求 支持共享相册的相关操作,支持批量下载相册所有普通照片、实况照片文件到本地 支持多用户联合下载功能,对下载速度有极致追求的用户可以尝试使用该选项。详情请查看文档多用户联合下载 如果大家有打算开通阿里云盘VIP会员,可以使用阿里云盘APP扫描下面的优惠推荐码进行开通。 注意:您需要开通【三方应用权益包】,这样使用本程序下载才能加速,否则下载无法提速。 Windows不第二步打开aliyunpan命令行程序,任何云盘命令都有类似如下日志输出 如何登出和下线客户端 阿里云盘单账户最多只允许同时登录 10 台设备 当出现这个提示:你账号已超出最大登录设备数量,请先下线一台设备,然后重启本应用,才可以继续使用 说明你的账号登录客户端已经超过数量,你需要先登出其他客户端才能继续使用,如下所示
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值