func NewDefaultPoolConfig() *ObjectPoolConfig {
	return &ObjectPoolConfig{
		LIFO:                     DefaultLIFO,
		MaxTotal:                 DefaultMaxTotal,
		MaxIdle:                  DefaultMaxIdle,
		MinIdle:                  DefaultMinIdle,
		MinEvictableIdleTime:     DefaultMinEvictableIdleTime,
		SoftMinEvictableIdleTime: DefaultSoftMinEvictableIdleTime,
		NumTestsPerEvictionRun:   DefaultNumTestsPerEvictionRun,
		EvictionPolicyName:       DefaultEvictionPolicyName,
		EvictionContext:          context.Background(),
		TestOnCreate:             DefaultTestOnCreate,
		TestOnBorrow:             DefaultTestOnBorrow,
		TestOnReturn:             DefaultTestOnReturn,
		TestWhileIdle:            DefaultTestWhileIdle,
		TimeBetweenEvictionRuns:  DefaultTimeBetweenEvictionRuns,
		BlockWhenExhausted:       DefaultBlockWhenExhausted}
}
NewDefaultPoolConfig return a ObjectPoolConfig instance init with default value.
package pool
import (
	"context"
	"errors"
	"math"
	"sync"
	"time"
)
const (
	DefaultMaxTotal = 8
	DefaultMaxIdle = 8
	DefaultMinIdle = 0
	DefaultLIFO = true
	DefaultMinEvictableIdleTime = 30 * time.Minute
	DefaultSoftMinEvictableIdleTime = time.Duration(math.MaxInt64)
	DefaultNumTestsPerEvictionRun = 3
	DefaultTestOnCreate = false
	DefaultTestOnBorrow = false
	DefaultTestOnReturn = false
	DefaultTestWhileIdle = false
	DefaultTimeBetweenEvictionRuns = time.Duration(0)
	DefaultBlockWhenExhausted = true
	DefaultEvictionPolicyName = "github.com/jolestar/go-commons-pool/DefaultEvictionPolicy"
)
type ObjectPoolConfig struct {
	LIFO bool
	MaxTotal int
	MaxIdle int
	MinIdle int
	TestOnCreate bool
	TestOnBorrow bool
	TestOnReturn bool
	TestWhileIdle bool
	BlockWhenExhausted bool
	MinEvictableIdleTime time.Duration
	SoftMinEvictableIdleTime time.Duration
	NumTestsPerEvictionRun int
	EvictionPolicyName string
	TimeBetweenEvictionRuns time.Duration
	EvictionContext context.Context
}