diff --git a/docs/spring/csd5ea6eb8-8f20-11ee-8d74-acde48001122.java b/docs/spring/csd5ea6eb8-8f20-11ee-8d74-acde48001122.java new file mode 100644 index 00000000..cc6d3d17 --- /dev/null +++ b/docs/spring/csd5ea6eb8-8f20-11ee-8d74-acde48001122.java @@ -0,0 +1,10 @@ +package com.huifer.utils.factory; + +public class AbsTransform { + private Object value; + + public Object getValue() { + return value; + } + +} diff --git a/docs/spring/csd629f182-8f20-11ee-8d74-acde48001122.java b/docs/spring/csd629f182-8f20-11ee-8d74-acde48001122.java new file mode 100644 index 00000000..66a69682 --- /dev/null +++ b/docs/spring/csd629f182-8f20-11ee-8d74-acde48001122.java @@ -0,0 +1,42 @@ +/** + * Copyright 2009-2019 the original author or authors. + *
+ * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + *
+ * http://www.apache.org/licenses/LICENSE-2.0 + *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.ibatis.reflection;
+
+import java.lang.reflect.Constructor;
+import java.lang.reflect.Executable;
+import java.lang.reflect.Method;
+import java.lang.reflect.Parameter;
+import java.util.Arrays;
+import java.util.List;
+import java.util.stream.Collectors;
+
+public class ParamNameUtil {
+ private ParamNameUtil() {
+ super();
+ }
+
+ public static List
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.ibatis.submitted.serializecircular;
+
+import java.io.Serializable;
+
+public class Attribute implements Serializable {
+ private static final long serialVersionUID = 1L;
+
+ private Integer id;
+
+ public Integer getId() {
+ return id;
+ }
+
+ public void setId(Integer id) {
+ this.id = id;
+ }
+
+}
diff --git a/docs/spring/csd6e9a284-8f20-11ee-8d74-acde48001122.java b/docs/spring/csd6e9a284-8f20-11ee-8d74-acde48001122.java
new file mode 100644
index 00000000..41d73ea9
--- /dev/null
+++ b/docs/spring/csd6e9a284-8f20-11ee-8d74-acde48001122.java
@@ -0,0 +1,105 @@
+/**
+ * Copyright 2009-2019 the original author or authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.ibatis.submitted.mapper_extend;
+
+import org.apache.ibatis.BaseDataTest;
+import org.apache.ibatis.binding.BindingException;
+import org.apache.ibatis.io.Resources;
+import org.apache.ibatis.session.SqlSession;
+import org.apache.ibatis.session.SqlSessionFactory;
+import org.apache.ibatis.session.SqlSessionFactoryBuilder;
+import org.junit.jupiter.api.Assertions;
+import org.junit.jupiter.api.BeforeAll;
+import org.junit.jupiter.api.Test;
+
+import java.io.Reader;
+
+import static com.googlecode.catchexception.apis.BDDCatchException.caughtException;
+import static com.googlecode.catchexception.apis.BDDCatchException.when;
+import static org.assertj.core.api.BDDAssertions.then;
+
+class MapperExtendTest {
+
+ private static SqlSessionFactory sqlSessionFactory;
+
+ @BeforeAll
+ static void setUp() throws Exception {
+ // create an SqlSessionFactory
+ try (Reader reader = Resources.getResourceAsReader("org/apache/ibatis/submitted/mapper_extend/mybatis-config.xml")) {
+ sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);
+ }
+
+ // populate in-memory database
+ BaseDataTest.runScript(sqlSessionFactory.getConfiguration().getEnvironment().getDataSource(),
+ "org/apache/ibatis/submitted/mapper_extend/CreateDB.sql");
+ }
+
+ @Test
+ void shouldGetAUserWithAnExtendedXMLMethod() {
+ try (SqlSession sqlSession = sqlSessionFactory.openSession()) {
+ ParentMapper mapper = sqlSession.getMapper(Mapper.class);
+ User user = mapper.getUserXML();
+ Assertions.assertEquals("User1", user.getName());
+ }
+ }
+
+ @Test
+ void shouldGetAUserWithAnExtendedAnnotatedMethod() {
+ try (SqlSession sqlSession = sqlSessionFactory.openSession()) {
+ ParentMapper mapper = sqlSession.getMapper(Mapper.class);
+ User user = mapper.getUserAnnotated();
+ Assertions.assertEquals("User1", user.getName());
+ }
+ }
+
+ @Test
+ void shouldGetAUserWithAnOverloadedXMLMethod() {
+ try (SqlSession sqlSession = sqlSessionFactory.openSession()) {
+ ParentMapper mapper = sqlSession.getMapper(MapperOverload.class);
+ User user = mapper.getUserXML();
+ Assertions.assertEquals("User2", user.getName());
+ }
+ }
+
+ @Test
+ void shouldGetAUserWithAnOverloadedAnnotatedMethod() {
+ try (SqlSession sqlSession = sqlSessionFactory.openSession()) {
+ ParentMapper mapper = sqlSession.getMapper(MapperOverload.class);
+ User user = mapper.getUserAnnotated();
+ Assertions.assertEquals("User2", user.getName());
+ }
+ }
+
+ @Test
+ void shouldFindStatementInSubInterfaceOfDeclaringClass() {
+ try (SqlSession sqlSession = sqlSessionFactory.openSession()) {
+ ChildMapper mapper = sqlSession.getMapper(ChildMapper.class);
+ User user = mapper.getUserByName("User1");
+ Assertions.assertNotNull(user);
+ }
+ }
+
+ @Test
+ void shouldThrowExceptionIfNoMatchingStatementFound() {
+ try (SqlSession sqlSession = sqlSessionFactory.openSession()) {
+ Mapper mapper = sqlSession.getMapper(Mapper.class);
+ when(mapper::noMappedStatement);
+ then(caughtException()).isInstanceOf(BindingException.class)
+ .hasMessage("Invalid bound statement (not found): "
+ + Mapper.class.getName() + ".noMappedStatement");
+ }
+ }
+}
diff --git a/docs/spring/csd72e9f60-8f20-11ee-8d74-acde48001122.java b/docs/spring/csd72e9f60-8f20-11ee-8d74-acde48001122.java
new file mode 100644
index 00000000..9eac64d1
--- /dev/null
+++ b/docs/spring/csd72e9f60-8f20-11ee-8d74-acde48001122.java
@@ -0,0 +1,40 @@
+package com.huifer.securityuserview.aop;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+public class DoLog implements Serializable {
+
+ private Long id;
+ /**
+ * asplog value 属性值
+ */
+ private String aspVal;
+
+ /**
+ * 操作的具体类
+ */
+ private String doClass;
+ /**
+ * 操作方法
+ */
+ private String methodName;
+ /**
+ * 参数
+ */
+ private Object params;
+
+ public Object getParams() {
+ return params;
+ }
+
+ public void setParams(Object params) {
+ this.params = params;
+ }
+}
\ No newline at end of file
diff --git a/docs/spring/csd776e982-8f20-11ee-8d74-acde48001122.java b/docs/spring/csd776e982-8f20-11ee-8d74-acde48001122.java
new file mode 100644
index 00000000..714c6d27
--- /dev/null
+++ b/docs/spring/csd776e982-8f20-11ee-8d74-acde48001122.java
@@ -0,0 +1,114 @@
+/*
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements. See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership. The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License. You may obtain a copy of the License at
+
+ https://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied. See the License for the
+specific language governing permissions and limitations
+under the License.
+*/
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.net.URL;
+import java.nio.channels.Channels;
+import java.nio.channels.ReadableByteChannel;
+import java.util.Properties;
+
+public class MavenWrapperDownloader {
+
+ /**
+ * Default URL to download the maven-wrapper.jar from, if no 'downloadUrl' is provided.
+ */
+ private static final String DEFAULT_DOWNLOAD_URL =
+ "https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.4.2/maven-wrapper-0.4.2.jar";
+
+ /**
+ * Path to the maven-wrapper.properties file, which might contain a downloadUrl property to use instead of the
+ * default one.
+ */
+ private static final String MAVEN_WRAPPER_PROPERTIES_PATH =
+ ".mvn/wrapper/maven-wrapper.properties";
+
+ /**
+ * Path where the maven-wrapper.jar will be saved to.
+ */
+ private static final String MAVEN_WRAPPER_JAR_PATH =
+ ".mvn/wrapper/maven-wrapper.jar";
+
+ /**
+ * Name of the property which should be used to override the default download url for the wrapper.
+ */
+ private static final String PROPERTY_NAME_WRAPPER_URL = "wrapperUrl";
+
+ public static void main(String args[]) {
+ System.out.println("- Downloader started");
+ File baseDirectory = new File(args[0]);
+ System.out.println("- Using base directory: " + baseDirectory.getAbsolutePath());
+
+ // If the maven-wrapper.properties exists, read it and check if it contains a custom
+ // wrapperUrl parameter.
+ File mavenWrapperPropertyFile = new File(baseDirectory, MAVEN_WRAPPER_PROPERTIES_PATH);
+ String url = DEFAULT_DOWNLOAD_URL;
+ if (mavenWrapperPropertyFile.exists()) {
+ FileInputStream mavenWrapperPropertyFileInputStream = null;
+ try {
+ mavenWrapperPropertyFileInputStream = new FileInputStream(mavenWrapperPropertyFile);
+ Properties mavenWrapperProperties = new Properties();
+ mavenWrapperProperties.load(mavenWrapperPropertyFileInputStream);
+ url = mavenWrapperProperties.getProperty(PROPERTY_NAME_WRAPPER_URL, url);
+ } catch (IOException e) {
+ System.out.println("- ERROR loading '" + MAVEN_WRAPPER_PROPERTIES_PATH + "'");
+ } finally {
+ try {
+ if (mavenWrapperPropertyFileInputStream != null) {
+ mavenWrapperPropertyFileInputStream.close();
+ }
+ } catch (IOException e) {
+ // Ignore ...
+ }
+ }
+ }
+ System.out.println("- Downloading from: : " + url);
+
+ File outputFile = new File(baseDirectory.getAbsolutePath(), MAVEN_WRAPPER_JAR_PATH);
+ if (!outputFile.getParentFile().exists()) {
+ if (!outputFile.getParentFile().mkdirs()) {
+ System.out.println(
+ "- ERROR creating output direcrory '" + outputFile.getParentFile().getAbsolutePath() + "'");
+ }
+ }
+ System.out.println("- Downloading to: " + outputFile.getAbsolutePath());
+ try {
+ downloadFileFromURL(url, outputFile);
+ System.out.println("Done");
+ System.exit(0);
+ } catch (Throwable e) {
+ System.out.println("- Error downloading");
+ e.printStackTrace();
+ System.exit(1);
+ }
+ }
+
+ private static void downloadFileFromURL(String urlString, File destination) throws Exception {
+ URL website = new URL(urlString);
+ ReadableByteChannel rbc;
+ rbc = Channels.newChannel(website.openStream());
+ FileOutputStream fos = new FileOutputStream(destination);
+ fos.getChannel().transferFrom(rbc, 0, Long.MAX_VALUE);
+ fos.close();
+ rbc.close();
+ }
+
+}